sliccy 6.256.20 → 6.256.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/ui/.vite/manifest.json +180 -180
  2. package/dist/ui/assets/{account-store-CuQyRnib.js → account-store--QH_gRlz.js} +1 -1
  3. package/dist/ui/assets/{account-store-CEqw_XTp.js → account-store-CbKQrU_A.js} +1 -1
  4. package/dist/ui/assets/{adobe-DLwRzZCw.js → adobe-BBZZjXPq.js} +1 -1
  5. package/dist/ui/assets/{adobe-B4Y2A2AD.js → adobe-D6tf-vd0.js} +1 -1
  6. package/dist/ui/assets/{agent-panels-DrtCqAV-.js → agent-panels-DwoeuEZJ.js} +1 -1
  7. package/dist/ui/assets/{almost-bash-shell-headless-pwdOe3YW.js → almost-bash-shell-headless-IexVAylq.js} +11 -11
  8. package/dist/ui/assets/{apply-layout-CH3UhXCP.js → apply-layout-DyJWDEg0.js} +1 -1
  9. package/dist/ui/assets/{azure-openai-CxZFHgjG.js → azure-openai-DfNYV355.js} +1 -1
  10. package/dist/ui/assets/{azure-openai-5qDnHBYT.js → azure-openai-mzyA6ec_.js} +1 -1
  11. package/dist/ui/assets/{cdp-C8HHv5qA.js → cdp-D4hCZeiK.js} +3 -3
  12. package/dist/ui/assets/{cerebras-Czbq-0qg.js → cerebras-DCpB0UlY.js} +1 -1
  13. package/dist/ui/assets/{cerebras-B1cY7cfF.js → cerebras-nIWXceol.js} +1 -1
  14. package/dist/ui/assets/{composer-speech-DeLPAAnL.js → composer-speech-tLlsFK5D.js} +1 -1
  15. package/dist/ui/assets/{connect-surface-Du9dcsgG.js → connect-surface-XwtqAfeO.js} +1 -1
  16. package/dist/ui/assets/{directed-approval-Ch4rtrAp.js → directed-approval-BHC1QE2R.js} +1 -1
  17. package/dist/ui/assets/{emscripten-vfs-hook-BYpqS-pK.js → emscripten-vfs-hook-D27gwwXv.js} +1 -1
  18. package/dist/ui/assets/{frozen-archive-writer-CXRaBKpe.js → frozen-archive-writer-Cixi7_NJ.js} +1 -1
  19. package/dist/ui/assets/{frozen-session-delete-Cd8Hp2Od.js → frozen-session-delete-2eh2Yhbl.js} +1 -1
  20. package/dist/ui/assets/{frozen-session-identity-XzcVW8UL.js → frozen-session-identity-DoWKIEpR.js} +1 -1
  21. package/dist/ui/assets/{gelatiere-unit-BIIKTgS2.js → gelatiere-unit-BqTcFkxk.js} +1 -1
  22. package/dist/ui/assets/{github-DOfti7_n.js → github-BhZHOxKc.js} +1 -1
  23. package/dist/ui/assets/{github-D0xw3eYJ.js → github-DN2OBZNS.js} +1 -1
  24. package/dist/ui/assets/{github-copilot-BVDlkmAY.js → github-copilot-CQhrDhDZ.js} +1 -1
  25. package/dist/ui/assets/{github-copilot-C1c9Cctf.js → github-copilot-Dgi-j2_O.js} +1 -1
  26. package/dist/ui/assets/{hear-Bf5HwOni.js → hear-BDUAwa28.js} +1 -1
  27. package/dist/ui/assets/{hidden-page-input-DDEF33JC.js → hidden-page-input-01CnfmMB.js} +1 -1
  28. package/dist/ui/assets/{hidden-page-input-A06qdSVm.js → hidden-page-input-CBbLsDx2.js} +1 -1
  29. package/dist/ui/assets/{js-realm-worker-CemAn96I.js → js-realm-worker-CDJhvYJx.js} +2 -2
  30. package/dist/ui/assets/{jsh-executor-DGOAl5iJ.js → jsh-executor-BVFFU-rP.js} +3 -3
  31. package/dist/ui/assets/{kernel-worker-DQZWnLpe.js → kernel-worker-965_891X.js} +9 -9
  32. package/dist/ui/assets/{lick-ws-bridge-B-61k0Zh.js → lick-ws-bridge-D4PsA45A.js} +1 -1
  33. package/dist/ui/assets/{lick-ws-bridge-DbJ8yf-k.js → lick-ws-bridge-DuAP_Xb5.js} +1 -1
  34. package/dist/ui/assets/{live-session-curation-zfkDVdK3.js → live-session-curation-BB61f9E8.js} +1 -1
  35. package/dist/ui/assets/{live-session-curation-CLbx1I_X.js → live-session-curation-CGxamyw3.js} +1 -1
  36. package/dist/ui/assets/{live-session-snapshot-3Eb9FMGE.js → live-session-snapshot-BDyBgtvN.js} +1 -1
  37. package/dist/ui/assets/{local-llm-D2S0cCYP.js → local-llm-CEQQXhGE.js} +1 -1
  38. package/dist/ui/assets/{local-llm-RFZ66ynj.js → local-llm-Cy5E3lJo.js} +1 -1
  39. package/dist/ui/assets/{main-CN0eXvpe.js → main-C8hdX5_E.js} +3 -3
  40. package/dist/ui/assets/{main-cherry-CsLIn0Jy.js → main-cherry-ykXNeN9-.js} +1 -1
  41. package/dist/ui/assets/{mcp-command-Co4BM7rI.js → mcp-command-w6OUcgfO.js} +10 -10
  42. package/dist/ui/assets/{memory-curation-seam-DitfDTyZ.js → memory-curation-seam-C4r6A-jq.js} +1 -1
  43. package/dist/ui/assets/{memory-write-execute-DnPv8AaN.js → memory-write-execute-C_0rryC9.js} +1 -1
  44. package/dist/ui/assets/{merge-folded-cost-into-frozen-C24isZFN.js → merge-folded-cost-into-frozen-C9I1ykhe.js} +1 -1
  45. package/dist/ui/assets/{new-session-Bz-zsmnA.js → new-session-k7LcBmG5.js} +2 -2
  46. package/dist/ui/assets/{oauth-bootstrap-CowVQxka.js → oauth-bootstrap-qTw880dW.js} +2 -2
  47. package/dist/ui/assets/{onboarding-orchestrator-BW5xLMjU.js → onboarding-orchestrator-B5XUC4QP.js} +1 -1
  48. package/dist/ui/assets/{openai-codex-D-mRHUJ_.js → openai-codex-BpfRFQ9A.js} +1 -1
  49. package/dist/ui/assets/{openai-codex-BIUq5T-M.js → openai-codex-BtEdGRUK.js} +1 -1
  50. package/dist/ui/assets/{openrouter-B8wWwNw8.js → openrouter-CGkUkGLm.js} +1 -1
  51. package/dist/ui/assets/{openrouter-euDNOeLU.js → openrouter-D9PB_Wxr.js} +1 -1
  52. package/dist/ui/assets/{openrouter-free-CxpCaBRA.js → openrouter-free-BfihlWk1.js} +1 -1
  53. package/dist/ui/assets/{openrouter-free-DF0yibHR.js → openrouter-free-Brc9YCWo.js} +1 -1
  54. package/dist/ui/assets/{openrouter-oauth-BfiowYVD.js → openrouter-oauth-DIBlm_UZ.js} +1 -1
  55. package/dist/ui/assets/{openrouter-oauth-cciCymss.js → openrouter-oauth-DdrrVt3S.js} +1 -1
  56. package/dist/ui/assets/{panel-rpc-handlers-B3eqfWJ0.js → panel-rpc-handlers-BmON86n5.js} +2 -2
  57. package/dist/ui/assets/{panelize-shell-BfSgnfgs.js → panelize-shell-Dt3FXNpB.js} +1 -1
  58. package/dist/ui/assets/{pi-edit-execution-ji-kHMKJ.js → pi-edit-execution-iaL4Mz3u.js} +1 -1
  59. package/dist/ui/assets/{provider-BKtPDkWZ.js → provider-B8I1Mys2.js} +1 -1
  60. package/dist/ui/assets/{provider-CSI-1cw8.js → provider-CN-5jpvI.js} +1 -1
  61. package/dist/ui/assets/{provider-settings-CjUgLZVJ.js → provider-settings-B5CKyKdE.js} +1 -1
  62. package/dist/ui/assets/provider-store-access-D3cir6Mf.js +1 -0
  63. package/dist/ui/assets/provider-store-access-DruVrLP2.js +1 -0
  64. package/dist/ui/assets/{providers-BME8SM7Y.js → providers-CnawElFK.js} +1 -1
  65. package/dist/ui/assets/{providers-DUsi8UJy.js → providers-s2pRjrQo.js} +2 -2
  66. package/dist/ui/assets/{quick-llm-BgX8DGOf.js → quick-llm-DcceQmkj.js} +1 -1
  67. package/dist/ui/assets/{realm-inprocess-B-o6MXXm.js → realm-inprocess-48bEemKF.js} +2 -2
  68. package/dist/ui/assets/{realm-unhandled-rejections--yOMYML4.js → realm-unhandled-rejections-BqWjiqaB.js} +1 -1
  69. package/dist/ui/assets/{realm-unhandled-rejections-B_sD1Eqh.js → realm-unhandled-rejections-DpKKv_Sg.js} +1 -1
  70. package/dist/ui/assets/{remote-terminal-view-D95a_lGP.js → remote-terminal-view-ML6zl31u.js} +2 -2
  71. package/dist/ui/assets/{restore-BUvJhiTF.js → restore-Uo3FkyTn.js} +1 -1
  72. package/dist/ui/assets/{run-BwR10Tfc.js → run-7BBLWyxm.js} +2 -2
  73. package/dist/ui/assets/{run-DX49FiKl.js → run-BZUVJe9B.js} +2 -2
  74. package/dist/ui/assets/{run-b9uA0T1r.js → run-tb90H7t4.js} +1 -1
  75. package/dist/ui/assets/{serve-command-B5HZS1FV.js → serve-command-C1oMKVa-.js} +2 -2
  76. package/dist/ui/assets/{serve-runtime-CqUYUISo.js → serve-runtime-BMkuNcbl.js} +1 -1
  77. package/dist/ui/assets/{session-command-memory-c8nM2oAl.js → session-command-memory-lm81X-Is.js} +2 -2
  78. package/dist/ui/assets/{session-jsonl-BwJt_n1u.js → session-jsonl-eXAElh6W.js} +1 -1
  79. package/dist/ui/assets/{session-search-index-DumLK4vT.js → session-search-index-ByisDLR5.js} +1 -1
  80. package/dist/ui/assets/{setup-feature-flags-remote-CIolNdqX.js → setup-feature-flags-remote-z293EM8V.js} +1 -1
  81. package/dist/ui/assets/{setup-model-catalog-D5oj1TnB.js → setup-model-catalog-DFfU37vS.js} +1 -1
  82. package/dist/ui/assets/{silent-renew-backoff-BwsIHdH7.js → silent-renew-backoff-B0lMVNh5.js} +1 -1
  83. package/dist/ui/assets/slicc-version-DGCQeyP5.js +1 -0
  84. package/dist/ui/assets/{soundscape-gX8pyQsR.js → soundscape-DHszzPsM.js} +1 -1
  85. package/dist/ui/assets/{speak-DUmL0M9L.js → speak-DZZSpSqs.js} +1 -1
  86. package/dist/ui/assets/{sprinkle-manager-el_STA97.js → sprinkle-manager-CMAEGvh9.js} +1 -1
  87. package/dist/ui/assets/{sprinkle-renderer-C9fr3WHR.js → sprinkle-renderer-DcsYmznT.js} +1 -1
  88. package/dist/ui/assets/{sudo-ZExTT5ER.js → sudo-YyLShRTX.js} +1 -1
  89. package/dist/ui/assets/{supervisor-CuK_w37s.js → supervisor-BJNQ0Sie.js} +1 -1
  90. package/dist/ui/assets/{sync-dialog-Y1I8wtI7.js → sync-dialog-OIBe84rb.js} +1 -1
  91. package/dist/ui/assets/{transformers-env-CFMmsFPt.js → transformers-env-DlTQEcvy.js} +1 -1
  92. package/dist/ui/assets/{tray-leader-WA8nmGPu.js → tray-leader-x0HDgpHa.js} +1 -1
  93. package/dist/ui/assets/{tray-leave-runtime-Dnbn_g0R.js → tray-leave-runtime-B6ZqjKqA.js} +1 -1
  94. package/dist/ui/assets/{tray-sidecar-D5lGknCp.js → tray-sidecar-C08eb6rV.js} +1 -1
  95. package/dist/ui/assets/{upgrade-detection-B_0cdTwX.js → upgrade-detection-BZOEx1T3.js} +1 -1
  96. package/dist/ui/assets/{upgrade-to-seven-YOHOuBIz.js → upgrade-to-seven-Pi7N3s4V.js} +1 -1
  97. package/dist/ui/assets/{voice-reply-Du8td5dw.js → voice-reply-D0KspY5L.js} +1 -1
  98. package/dist/ui/assets/{wc-attach-BQmRGrD1.js → wc-attach-C--w91hS.js} +2 -2
  99. package/dist/ui/assets/{wc-browser-mLBbjD7x.js → wc-browser-Bwwt12VY.js} +1 -1
  100. package/dist/ui/assets/{wc-computers-D4cVXfw8.js → wc-computers-CEYTEbzK.js} +1 -1
  101. package/dist/ui/assets/{wc-detached-DJvs-BOI.js → wc-detached-BMfwyvTN.js} +1 -1
  102. package/dist/ui/assets/{wc-extension-C8pEK7qU.js → wc-extension-WVBzb68j.js} +2 -2
  103. package/dist/ui/assets/{wc-follower-DH7hCy3x.js → wc-follower-CfQXvNqW.js} +3 -3
  104. package/dist/ui/assets/{wc-follower-oauth-DKRGLBWN.js → wc-follower-oauth-CRA3bG2x.js} +1 -1
  105. package/dist/ui/assets/{wc-gelatiere-CJpfn7Ca.js → wc-gelatiere-CFupkA18.js} +1 -1
  106. package/dist/ui/assets/{wc-live-mNieNNOh.js → wc-live-jfkgv1D5.js} +5 -5
  107. package/dist/ui/assets/{wc-nav-mcV-muIN.js → wc-nav-CMmiK8CR.js} +2 -2
  108. package/dist/ui/assets/{wc-onboarding-DhNdAmF2.js → wc-onboarding-DwK2Xo_f.js} +2 -2
  109. package/dist/ui/assets/{wc-permissions-DfXcDHFY.js → wc-permissions-sEzYJY5L.js} +2 -2
  110. package/dist/ui/assets/{wc-placeholder-BO7LIBQk.js → wc-placeholder-dACLWYRH.js} +2 -2
  111. package/dist/ui/assets/{wc-profile-export-K9m6pZBL.js → wc-profile-export-0_MWQlQi.js} +3 -3
  112. package/dist/ui/assets/{wc-secret-request-DFNuYRtA.js → wc-secret-request-Bj6AEfhW.js} +1 -1
  113. package/dist/ui/assets/{wc-settings-KPmFCSeh.js → wc-settings-D36d5og0.js} +3 -3
  114. package/dist/ui/assets/{wc-shell-DUnQ3yem.js → wc-shell-Dviry0M3.js} +3 -3
  115. package/dist/ui/assets/{wc-shortcut-config-_FC-kTdg.js → wc-shortcut-config-BEJ7hCGM.js} +1 -1
  116. package/dist/ui/assets/{wc-sprinkles-CGU4-WKU.js → wc-sprinkles-CCEvPCsZ.js} +2 -2
  117. package/dist/ui/assets/{wc-transcript-export-BXCZhTfg.js → wc-transcript-export-BLZIE8ep.js} +2 -2
  118. package/dist/ui/assets/{wc-tray-B4fcMI28.js → wc-tray-Bpsl7Mew.js} +4 -4
  119. package/dist/ui/assets/welcome-detection-CWqP_ofb.js +1 -0
  120. package/dist/ui/assets/{whisper-session-B4xkoupa.js → whisper-session-CmQR_O2N.js} +2 -2
  121. package/dist/ui/assets/{xai-grok-BJ0tBHY1.js → xai-grok-BjEcnSUJ.js} +1 -1
  122. package/dist/ui/assets/{xai-grok-DA654XhD.js → xai-grok-DNyRhPcB.js} +1 -1
  123. package/dist/ui/index.html +3 -3
  124. package/dist/ui/packages/webapp/index.html +3 -3
  125. package/dist/ui/packages/webapp/upgrade-to-seven.html +1 -1
  126. package/dist/ui/upgrade-to-seven.html +1 -1
  127. package/package.json +2 -2
  128. package/dist/ui/assets/provider-store-access-B8DHQMsm.js +0 -1
  129. package/dist/ui/assets/provider-store-access-DR6dk4La.js +0 -1
  130. package/dist/ui/assets/slicc-version-DtrTeMyR.js +0 -1
  131. package/dist/ui/assets/welcome-detection-JV0kEwvY.js +0 -1
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/main-CN0eXvpe.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/logger-dqckiMJt.js","assets/core-BXRpM6QF.js","assets/preload-helper-BLdHbfdN.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/feature-flags-DDJdMcuw.js","assets/proxied-fetch-2sdz8vNB.js","assets/base64-ELzoYfwP.js","assets/api-endpoint-CNqFa-M3.js","assets/secret-topology-BuXN_6_0.js","assets/secrets-bridge-client-BD4AHTxg.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/image-markers-4eaAm9QS.js","assets/bridge-protocol-C52CnDIj.js","assets/stored-accounts-CdMZdZUa.js","assets/account-store-CEqw_XTp.js","assets/providers-DUsi8UJy.js","assets/renamed-providers-d0bAaa0l.js","assets/bedrock-camp-compat-D6dUCn_T.js","assets/bedrock-camp-extra-models-COVvjLB5.js","assets/claude-model-version-3MWQoaco.js","assets/telemetry-kqkj0A7x.js","assets/tray-follower-status-BAjnN7Ar.js","assets/clipboard-eqmn97SP.js","assets/wc-detached-DJvs-BOI.js","assets/wc-settings-KPmFCSeh.js","assets/zip-stream-DZF8sKOl.js","assets/transcript-export-DTRO8k03.js","assets/wc-shell-DUnQ3yem.js","assets/dictation-priming-BHJC0hch.js","assets/mime-types-D0xZwlMO.js","assets/sha256-DynDhwRL.js","assets/GELATIERE-CLK_MA5a.js","assets/types-D8gIX-W-.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-Bn0sfTur.js","assets/message-envelope-BPSSjJbW.js","assets/agent-message-to-chat-BiZHDYFR.js","assets/wc-shell-WkeczD9x.css","assets/theme-engine-CwaY1aIr.js","assets/theme-CmogKzdP.js","assets/discovery-preference-C2N6fnUl.js","assets/legacy-styles-CGcVbQni.js","assets/sync-dialog-Y1I8wtI7.js","assets/wc-live-mNieNNOh.js","assets/sprinkle-renderer-C9fr3WHR.js","assets/permissions-surface-registry-CilCRwhh.js","assets/hid-device-registry-B2R-0rNt.js","assets/serial-port-registry-CCqklAEr.js","assets/hid-operations-C97SZtrY.js","assets/usb-device-registry--JwKRTYp.js","assets/usb-operations-Dx9QXlZ0.js","assets/shared-DSEuryGJ.js","assets/provider-budget-LCzMPlKv.js","assets/browser-OXhgs9Cl.js","assets/tray-leader-WA8nmGPu.js","assets/db-CIXZItfi.js","assets/sessions-Bd6uu3F5.js","assets/types-CFfBWsH5.js","assets/store-DP4F8FwF.js","assets/entries-ChYQ3OMf.js","assets/frozen-archive-writer-d8c53vzV.js","assets/frozen-session-identity-D__hHRHh.js","assets/session-jsonl-CJO46TfW.js","assets/snapshot-store-DYh_oG7o.js","assets/live-session-curation-zfkDVdK3.js","assets/MEMORY-B9cGngY_.js","assets/thinking-level-DCJktR5U.js","assets/profile-export-deps-BE2w_fD3.js","assets/global-db-CbuLl-zx.js","assets/wc-unit-context-DDyqslj4.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-BLdHbfdN.js";import{a as t}from"./feature-flags-DDJdMcuw.js";import{p as n}from"./api-endpoint-CNqFa-M3.js";import{F as r}from"./zip-stream-DZF8sKOl.js";import{t as i}from"./tray-follower-status-BAjnN7Ar.js";import{n as a}from"./clipboard-eqmn97SP.js";import{f as o,r as s,v as c}from"./main-CN0eXvpe.js";import{r as l}from"./tray-leader-WA8nmGPu.js";import{_ as u,c as d,s as f,v as p}from"./wc-live-mNieNNOh.js";import{o as m}from"./wc-unit-context-DDyqslj4.js";function h(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 g(e){return e.flatMap(e=>e.models.map(t=>({name:t.name??t.id,provider:e.providerName,id:`${e.providerId}:${t.id}`})))}function _(e,t,n){try{let r=t();e.setAttribute(`model`,r.name??r.id),n&&(e.selectedModelId=n())}catch{}}function v(e,n){let r=[{id:`settings`,label:`Account settings…`,icon:`settings`},{id:`theme`,label:`Theme settings…`,icon:`palette`},...n?[{id:`shortcuts`,label:`Keyboard mode`,icon:`keyboard`}]:[],{id:`export-transcript`,label:`Export transcript`,icon:`download`,disabled:e||void 0}];return t(`experimental-settings`)&&r.push({id:`experimental-settings`,label:`Experimental features…`,icon:`flask-conical`}),r}function y(e,t){return()=>{e.models=g(t()),p()}}function b(e,t,n){return()=>_(e,t,()=>{let e=t();return`${n()}:${e.id}`})}function x(e,t,n){return()=>{let r=h(t()),i=e.avatarMenu.querySelector(`slicc-avatar`),a=e.inputCard.querySelector(`slicc-send-button`);if(r){i?.removeAttribute(`initials`),i?.setAttribute(`name`,r.name),r.avatarUrl&&(i?.setAttribute(`src`,r.avatarUrl),a?.setAttribute(`src`,r.avatarUrl)),e.avatarMenu.user={name:r.name,provider:r.provider};return}i?.removeAttribute(`name`),i?.removeAttribute(`src`),i?.removeAttribute(`initials`),a?.removeAttribute(`src`),e.avatarMenu.user={name:`SLICC`,provider:n?`extension`:`standalone`}}}async function S(t){let{refs:r,client:a,log:o,onExportTranscript:c}=t,{getAllAvailableModels:u,getAccounts:d,getSelectedProvider:f,resolveCurrentModel:p}=await e(async()=>{let{getAllAvailableModels:e,getAccounts:t,getSelectedProvider:n,resolveCurrentModel:r}=await import(`./main-CN0eXvpe.js`).then(e=>e.t);return{getAllAvailableModels:e,getAccounts:t,getSelectedProvider:n,resolveCurrentModel:r}},__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])),m=y(r.composerMeta,u),h=b(r.composerMeta,p,f);m();let g=null;await N(r,a,t.workUnits,t.getUnits,()=>{let e=g;g=null,e!=null&&r.thread?.dispatchEvent(new CustomEvent(`slicc-error-retry`,{detail:{messageId:e},bubbles:!0,composed:!0}))});let _=n(),S=x(r,d,_);S();let O=()=>{if(_)return[];let e=s(l(),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},P=new URLSearchParams(window.location.search).has(`detached`),I=()=>_&&!P?[{id:`popout`,label:`Pop out into a tab`,icon:`external-link`}]:[],L=!1,R=()=>{r.avatarMenu.items=[...v(L,!!t.shortcuts),...I(),...O()]};R(),r.avatarMenu.addEventListener(`slicc-avatar-menu-toggle`,e=>{e.detail?.open&&R()});let z=C(o,m,S,()=>a.updateModel());t.shortcuts?.setAction(`accounts`,z);let B=w(o,T(t)),V=E(o);D(r,o),r.avatarMenu.addEventListener(`slicc-avatar-action`,n=>{let r=n.detail?.id;if(r&&k(r,o)){R();return}if(r===`popout`){e(async()=>{let{requestDetachedPopout:e}=await import(`./wc-detached-DJvs-BOI.js`);return{requestDetachedPopout:e}},__vite__mapDeps([26,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])).then(({requestDetachedPopout:e})=>e()).catch(e=>o.error(`detached popout request failed`,e));return}r===`shortcuts`&&t.shortcuts?.showHelp(),r===`settings`&&z(),r===`theme`&&B(),r===`experimental-settings`&&V(),r===`export-transcript`&&c&&(L=!0,R(),c().finally(()=>{L=!1,R()}))}),r.composerMeta.addEventListener(`add-ai`,z),A(r,z),j({refs:r,log:o,openSettings:z,setPendingReplayMessageId:e=>{g=e}}),await M({refs:r,log:o,openSettings:z,refreshModels:m,applyIdentity:S,client:a}),await F({refreshModels:m,refreshModelPill:h,applyIdentity:S,client:a})}function C(t,n,r,i){return()=>{e(async()=>{let{showWcSettings:e}=await import(`./wc-settings-KPmFCSeh.js`);return{showWcSettings:e}},__vite__mapDeps([27,4,7,28,1,29,19,2,30,31,32,9,15,17,3,5,6,8,10,11,12,13,14,16,18,20,21,22,33,23,34,35,36,37,38,39,40,41,42,43])).then(({showWcSettings:e})=>e(t)).then(()=>{n(),r(),i()}).catch(e=>t.error(`WC settings dialog failed`,e))}}function w(t,n){return()=>{e(async()=>{let{showThemeSettings:e}=await import(`./wc-settings-KPmFCSeh.js`);return{showThemeSettings:e}},__vite__mapDeps([27,4,7,28,1,29,19,2,30,31,32,9,15,17,3,5,6,8,10,11,12,13,14,16,18,20,21,22,33,23,34,35,36,37,38,39,40,41,42,43])).then(({showThemeSettings:e})=>e(t,n?{getTrigger:n.getTrigger,setTrigger:n.setTrigger,persistTrigger:n.persistTrigger}:void 0)).catch(e=>t.error(`Theme settings dialog failed`,e))}}function T(e){let t=e.shortcuts;if(t)return{getTrigger:()=>t.trigger(),setTrigger:e=>t.setTrigger(e),persistTrigger:e.persistKeyboardTrigger}}function E(t){return()=>{e(async()=>{let{showExperimentalSettings:e}=await import(`./wc-settings-KPmFCSeh.js`);return{showExperimentalSettings:e}},__vite__mapDeps([27,4,7,28,1,29,19,2,30,31,32,9,15,17,3,5,6,8,10,11,12,13,14,16,18,20,21,22,33,23,34,35,36,37,38,39,40,41,42,43])).then(({showExperimentalSettings:e})=>e(t)).catch(e=>t.error(`Experimental settings dialog failed`,e))}}function D(e,t){e.floatbar.addEventListener(`slicc-followers-click`,()=>{O(t,{copy:!1,initialTab:`status`})})}function O(t,n){let r=l().session?.joinUrl;r&&(n.copy&&a(r).catch(()=>void 0),e(async()=>{let{loadLegacyDialogStyles:e}=await import(`./legacy-styles-CGcVbQni.js`);return{loadLegacyDialogStyles:e}},__vite__mapDeps([44,4])).then(({loadLegacyDialogStyles:e})=>e()).then(async()=>{let{showSyncEnabledDialog:t}=await e(async()=>{let{showSyncEnabledDialog:e}=await import(`./sync-dialog-Y1I8wtI7.js`);return{showSyncEnabledDialog:e}},__vite__mapDeps([45,15,25,1,37,46,2,3,4,5,6,7,8,9,10,11,12,13,14,31,47,48,30,32,17,16,18,19,20,21,22,33,23,34,35,36,38,39,40,49,50,51,52,53,54,42,41,28,29,24,0,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72]));t({joinUrl:r,copied:n.copy,initialTab:n.initialTab,followers:f(),onReset:d()??null})}).catch(e=>t.error(`sync dialog failed`,e)))}function k(e,t){return e===`tray-enable`?(c({locationHref:window.location.href,storage:window.localStorage,envBaseUrl:null,defaultWorkerBaseUrl:o}).then(e=>{if(!e)return t.error(`tray enable: no worker base URL resolvable`);window.dispatchEvent(new CustomEvent(`slicc:tray-leave`,{detail:{workerBaseUrl:e}}))}),!0):e===`tray-copy`?(O(t,{copy:!0}),!0):e===`tray-stop`&&(window.dispatchEvent(new CustomEvent(`slicc:tray-leave`,{detail:{workerBaseUrl:null}})),!0)}function A(e,t){e.thread?.addEventListener(`slicc-error-open-settings`,t),window.addEventListener(`slicc:open-settings-from-panel`,()=>t())}function j(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 M(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(`./main-CN0eXvpe.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]));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 N(t,n,r,i,a){let{resolveModelById:o,resolveCurrentModel:s,setSelectedModelId:c}=await e(async()=>{let{resolveModelById:e,resolveCurrentModel:t,setSelectedModelId:n}=await import(`./main-CN0eXvpe.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])),l=e=>{let t=e.indexOf(`:`);return t>0?e.slice(t+1):e},u=e=>{try{let n=e?o(l(e)):s();t.composerMeta.toggleAttribute(`no-thinking`,n.reasoning!==!0)}catch{}};u(),t.composerMeta.addEventListener(`model-change`,e=>{let t=e.detail,o=t?.id;o&&t?.source!==`follower`&&(c(o),u(o),P(n,r,i(),o),a?.())})}async function P(e,t,n,i,a=u){let o=r(i);if(!o)return!1;let s=e.selectedScoopJid,c=m(n,s?{id:s}:null);if(!c)return!1;let l=await t.setModel(c.id,o);return l&&a(),l===!0}async function F(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(`./main-CN0eXvpe.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]));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{S as wireWcNav};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/main-C8hdX5_E.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/logger-dqckiMJt.js","assets/core-BXRpM6QF.js","assets/preload-helper-BLdHbfdN.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/feature-flags-DDJdMcuw.js","assets/proxied-fetch-2sdz8vNB.js","assets/base64-ELzoYfwP.js","assets/api-endpoint-CNqFa-M3.js","assets/secret-topology-BuXN_6_0.js","assets/secrets-bridge-client-BD4AHTxg.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/image-markers-4eaAm9QS.js","assets/bridge-protocol-C52CnDIj.js","assets/stored-accounts-CdMZdZUa.js","assets/account-store-CbKQrU_A.js","assets/providers-s2pRjrQo.js","assets/renamed-providers-d0bAaa0l.js","assets/bedrock-camp-compat-D6dUCn_T.js","assets/bedrock-camp-extra-models-COVvjLB5.js","assets/claude-model-version-3MWQoaco.js","assets/telemetry-kqkj0A7x.js","assets/tray-follower-status-BAjnN7Ar.js","assets/clipboard-eqmn97SP.js","assets/wc-detached-BMfwyvTN.js","assets/wc-settings-D36d5og0.js","assets/zip-stream-DZF8sKOl.js","assets/transcript-export-DTRO8k03.js","assets/wc-shell-Dviry0M3.js","assets/dictation-priming-BHJC0hch.js","assets/mime-types-D0xZwlMO.js","assets/sha256-DynDhwRL.js","assets/GELATIERE-CLK_MA5a.js","assets/types-D8gIX-W-.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-Bn0sfTur.js","assets/message-envelope-BPSSjJbW.js","assets/agent-message-to-chat-BiZHDYFR.js","assets/wc-shell-WkeczD9x.css","assets/theme-engine-CwaY1aIr.js","assets/theme-CmogKzdP.js","assets/discovery-preference-C2N6fnUl.js","assets/legacy-styles-CGcVbQni.js","assets/sync-dialog-OIBe84rb.js","assets/wc-live-jfkgv1D5.js","assets/sprinkle-renderer-DcsYmznT.js","assets/permissions-surface-registry-CilCRwhh.js","assets/hid-device-registry-B2R-0rNt.js","assets/serial-port-registry-CCqklAEr.js","assets/hid-operations-C97SZtrY.js","assets/usb-device-registry--JwKRTYp.js","assets/usb-operations-Dx9QXlZ0.js","assets/shared-DSEuryGJ.js","assets/provider-budget-LCzMPlKv.js","assets/browser-OXhgs9Cl.js","assets/tray-leader-x0HDgpHa.js","assets/db-CIXZItfi.js","assets/sessions-Bd6uu3F5.js","assets/types-CFfBWsH5.js","assets/store-DP4F8FwF.js","assets/entries-ChYQ3OMf.js","assets/frozen-archive-writer-d8c53vzV.js","assets/frozen-session-identity-D__hHRHh.js","assets/session-jsonl-CJO46TfW.js","assets/snapshot-store-DYh_oG7o.js","assets/live-session-curation-BB61f9E8.js","assets/MEMORY-B9cGngY_.js","assets/thinking-level-DCJktR5U.js","assets/profile-export-deps-BE2w_fD3.js","assets/global-db-CbuLl-zx.js","assets/wc-unit-context-DDyqslj4.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-BLdHbfdN.js";import{a as t}from"./feature-flags-DDJdMcuw.js";import{p as n}from"./api-endpoint-CNqFa-M3.js";import{F as r}from"./zip-stream-DZF8sKOl.js";import{t as i}from"./tray-follower-status-BAjnN7Ar.js";import{n as a}from"./clipboard-eqmn97SP.js";import{f as o,r as s,v as c}from"./main-C8hdX5_E.js";import{r as l}from"./tray-leader-x0HDgpHa.js";import{_ as u,c as d,s as f,v as p}from"./wc-live-jfkgv1D5.js";import{o as m}from"./wc-unit-context-DDyqslj4.js";function h(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 g(e){return e.flatMap(e=>e.models.map(t=>({name:t.name??t.id,provider:e.providerName,id:`${e.providerId}:${t.id}`})))}function _(e,t,n){try{let r=t();e.setAttribute(`model`,r.name??r.id),n&&(e.selectedModelId=n())}catch{}}function v(e,n){let r=[{id:`settings`,label:`Account settings…`,icon:`settings`},{id:`theme`,label:`Theme settings…`,icon:`palette`},...n?[{id:`shortcuts`,label:`Keyboard mode`,icon:`keyboard`}]:[],{id:`export-transcript`,label:`Export transcript`,icon:`download`,disabled:e||void 0}];return t(`experimental-settings`)&&r.push({id:`experimental-settings`,label:`Experimental features…`,icon:`flask-conical`}),r}function y(e,t){return()=>{e.models=g(t()),p()}}function b(e,t,n){return()=>_(e,t,()=>{let e=t();return`${n()}:${e.id}`})}function x(e,t,n){return()=>{let r=h(t()),i=e.avatarMenu.querySelector(`slicc-avatar`),a=e.inputCard.querySelector(`slicc-send-button`);if(r){i?.removeAttribute(`initials`),i?.setAttribute(`name`,r.name),r.avatarUrl&&(i?.setAttribute(`src`,r.avatarUrl),a?.setAttribute(`src`,r.avatarUrl)),e.avatarMenu.user={name:r.name,provider:r.provider};return}i?.removeAttribute(`name`),i?.removeAttribute(`src`),i?.removeAttribute(`initials`),a?.removeAttribute(`src`),e.avatarMenu.user={name:`SLICC`,provider:n?`extension`:`standalone`}}}async function S(t){let{refs:r,client:a,log:o,onExportTranscript:c}=t,{getAllAvailableModels:u,getAccounts:d,getSelectedProvider:f,resolveCurrentModel:p}=await e(async()=>{let{getAllAvailableModels:e,getAccounts:t,getSelectedProvider:n,resolveCurrentModel:r}=await import(`./main-C8hdX5_E.js`).then(e=>e.t);return{getAllAvailableModels:e,getAccounts:t,getSelectedProvider:n,resolveCurrentModel:r}},__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])),m=y(r.composerMeta,u),h=b(r.composerMeta,p,f);m();let g=null;await N(r,a,t.workUnits,t.getUnits,()=>{let e=g;g=null,e!=null&&r.thread?.dispatchEvent(new CustomEvent(`slicc-error-retry`,{detail:{messageId:e},bubbles:!0,composed:!0}))});let _=n(),S=x(r,d,_);S();let O=()=>{if(_)return[];let e=s(l(),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},P=new URLSearchParams(window.location.search).has(`detached`),I=()=>_&&!P?[{id:`popout`,label:`Pop out into a tab`,icon:`external-link`}]:[],L=!1,R=()=>{r.avatarMenu.items=[...v(L,!!t.shortcuts),...I(),...O()]};R(),r.avatarMenu.addEventListener(`slicc-avatar-menu-toggle`,e=>{e.detail?.open&&R()});let z=C(o,m,S,()=>a.updateModel());t.shortcuts?.setAction(`accounts`,z);let B=w(o,T(t)),V=E(o);D(r,o),r.avatarMenu.addEventListener(`slicc-avatar-action`,n=>{let r=n.detail?.id;if(r&&k(r,o)){R();return}if(r===`popout`){e(async()=>{let{requestDetachedPopout:e}=await import(`./wc-detached-BMfwyvTN.js`);return{requestDetachedPopout:e}},__vite__mapDeps([26,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])).then(({requestDetachedPopout:e})=>e()).catch(e=>o.error(`detached popout request failed`,e));return}r===`shortcuts`&&t.shortcuts?.showHelp(),r===`settings`&&z(),r===`theme`&&B(),r===`experimental-settings`&&V(),r===`export-transcript`&&c&&(L=!0,R(),c().finally(()=>{L=!1,R()}))}),r.composerMeta.addEventListener(`add-ai`,z),A(r,z),j({refs:r,log:o,openSettings:z,setPendingReplayMessageId:e=>{g=e}}),await M({refs:r,log:o,openSettings:z,refreshModels:m,applyIdentity:S,client:a}),await F({refreshModels:m,refreshModelPill:h,applyIdentity:S,client:a})}function C(t,n,r,i){return()=>{e(async()=>{let{showWcSettings:e}=await import(`./wc-settings-D36d5og0.js`);return{showWcSettings:e}},__vite__mapDeps([27,4,7,28,1,29,19,2,30,31,32,9,15,17,3,5,6,8,10,11,12,13,14,16,18,20,21,22,33,23,34,35,36,37,38,39,40,41,42,43])).then(({showWcSettings:e})=>e(t)).then(()=>{n(),r(),i()}).catch(e=>t.error(`WC settings dialog failed`,e))}}function w(t,n){return()=>{e(async()=>{let{showThemeSettings:e}=await import(`./wc-settings-D36d5og0.js`);return{showThemeSettings:e}},__vite__mapDeps([27,4,7,28,1,29,19,2,30,31,32,9,15,17,3,5,6,8,10,11,12,13,14,16,18,20,21,22,33,23,34,35,36,37,38,39,40,41,42,43])).then(({showThemeSettings:e})=>e(t,n?{getTrigger:n.getTrigger,setTrigger:n.setTrigger,persistTrigger:n.persistTrigger}:void 0)).catch(e=>t.error(`Theme settings dialog failed`,e))}}function T(e){let t=e.shortcuts;if(t)return{getTrigger:()=>t.trigger(),setTrigger:e=>t.setTrigger(e),persistTrigger:e.persistKeyboardTrigger}}function E(t){return()=>{e(async()=>{let{showExperimentalSettings:e}=await import(`./wc-settings-D36d5og0.js`);return{showExperimentalSettings:e}},__vite__mapDeps([27,4,7,28,1,29,19,2,30,31,32,9,15,17,3,5,6,8,10,11,12,13,14,16,18,20,21,22,33,23,34,35,36,37,38,39,40,41,42,43])).then(({showExperimentalSettings:e})=>e(t)).catch(e=>t.error(`Experimental settings dialog failed`,e))}}function D(e,t){e.floatbar.addEventListener(`slicc-followers-click`,()=>{O(t,{copy:!1,initialTab:`status`})})}function O(t,n){let r=l().session?.joinUrl;r&&(n.copy&&a(r).catch(()=>void 0),e(async()=>{let{loadLegacyDialogStyles:e}=await import(`./legacy-styles-CGcVbQni.js`);return{loadLegacyDialogStyles:e}},__vite__mapDeps([44,4])).then(({loadLegacyDialogStyles:e})=>e()).then(async()=>{let{showSyncEnabledDialog:t}=await e(async()=>{let{showSyncEnabledDialog:e}=await import(`./sync-dialog-OIBe84rb.js`);return{showSyncEnabledDialog:e}},__vite__mapDeps([45,15,25,1,37,46,2,3,4,5,6,7,8,9,10,11,12,13,14,31,47,48,30,32,17,16,18,19,20,21,22,33,23,34,35,36,38,39,40,49,50,51,52,53,54,42,41,28,29,24,0,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72]));t({joinUrl:r,copied:n.copy,initialTab:n.initialTab,followers:f(),onReset:d()??null})}).catch(e=>t.error(`sync dialog failed`,e)))}function k(e,t){return e===`tray-enable`?(c({locationHref:window.location.href,storage:window.localStorage,envBaseUrl:null,defaultWorkerBaseUrl:o}).then(e=>{if(!e)return t.error(`tray enable: no worker base URL resolvable`);window.dispatchEvent(new CustomEvent(`slicc:tray-leave`,{detail:{workerBaseUrl:e}}))}),!0):e===`tray-copy`?(O(t,{copy:!0}),!0):e===`tray-stop`&&(window.dispatchEvent(new CustomEvent(`slicc:tray-leave`,{detail:{workerBaseUrl:null}})),!0)}function A(e,t){e.thread?.addEventListener(`slicc-error-open-settings`,t),window.addEventListener(`slicc:open-settings-from-panel`,()=>t())}function j(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 M(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(`./main-C8hdX5_E.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]));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 N(t,n,r,i,a){let{resolveModelById:o,resolveCurrentModel:s,setSelectedModelId:c}=await e(async()=>{let{resolveModelById:e,resolveCurrentModel:t,setSelectedModelId:n}=await import(`./main-C8hdX5_E.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])),l=e=>{let t=e.indexOf(`:`);return t>0?e.slice(t+1):e},u=e=>{try{let n=e?o(l(e)):s();t.composerMeta.toggleAttribute(`no-thinking`,n.reasoning!==!0)}catch{}};u(),t.composerMeta.addEventListener(`model-change`,e=>{let t=e.detail,o=t?.id;o&&t?.source!==`follower`&&(c(o),u(o),P(n,r,i(),o),a?.())})}async function P(e,t,n,i,a=u){let o=r(i);if(!o)return!1;let s=e.selectedScoopJid,c=m(n,s?{id:s}:null);if(!c)return!1;let l=await t.setModel(c.id,o);return l&&a(),l===!0}async function F(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(`./main-C8hdX5_E.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]));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{S as wireWcNav};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/onboarding-orchestrator-BW5xLMjU.js","assets/logger-dqckiMJt.js","assets/zip-stream-DZF8sKOl.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/transcript-export-DTRO8k03.js","assets/renamed-providers-d0bAaa0l.js","assets/oauth-service-DBNa_4eS.js","assets/preload-helper-BLdHbfdN.js","assets/proxied-fetch-2sdz8vNB.js","assets/base64-ELzoYfwP.js","assets/api-endpoint-CNqFa-M3.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/permissions-surface-registry-CilCRwhh.js","assets/wc-shell-DUnQ3yem.js","assets/dictation-priming-BHJC0hch.js","assets/mime-types-D0xZwlMO.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-CEqw_XTp.js","assets/core-BXRpM6QF.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/feature-flags-DDJdMcuw.js","assets/secret-topology-BuXN_6_0.js","assets/secrets-bridge-client-BD4AHTxg.js","assets/image-markers-4eaAm9QS.js","assets/stored-accounts-CdMZdZUa.js","assets/providers-DUsi8UJy.js","assets/bedrock-camp-compat-D6dUCn_T.js","assets/bedrock-camp-extra-models-COVvjLB5.js","assets/claude-model-version-3MWQoaco.js","assets/sha256-DynDhwRL.js","assets/telemetry-kqkj0A7x.js","assets/GELATIERE-CLK_MA5a.js","assets/types-D8gIX-W-.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-Bn0sfTur.js","assets/message-envelope-BPSSjJbW.js","assets/agent-message-to-chat-BiZHDYFR.js","assets/wc-shell-WkeczD9x.css","assets/main-CN0eXvpe.js","assets/tray-follower-status-BAjnN7Ar.js","assets/clipboard-eqmn97SP.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./logger-dqckiMJt.js";import{t}from"./preload-helper-BLdHbfdN.js";import{A as n,k as r}from"./zip-stream-DZF8sKOl.js";import{g as i}from"./main-CN0eXvpe.js";import{t as a}from"./sessions-Bd6uu3F5.js";import{t as o}from"./store-DP4F8FwF.js";import{V as s}from"./wc-live-mNieNNOh.js";var c=e(`welcome-detection`),l=`/shared/.welcomed`,u=`browser-coding-agent`,d=1,f=`sessions`,p=n({folder:r}),m=`[Sprinkle Event: welcome]`;function h(){return new Promise((e,t)=>{let n=indexedDB.open(u,d);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(f)||e.createObjectStore(f,{keyPath:`id`})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error),n.onblocked=()=>{}})}function g(){return h().catch(()=>new Promise((e,t)=>{setTimeout(()=>{h().then(e,t)},120)}))}async function _(){let e=await g();try{return await new Promise((t,n)=>{let r=e.transaction(f,`readonly`).objectStore(f).get(p);r.onsuccess=()=>t(r.result??null),r.onerror=()=>n(r.error)})}finally{e.close()}}async function v(){let[e,t]=await Promise.all([y().catch(e=>(c.warn(`Failed to read the cone conversation record`,{error:b(e)}),[])),_().catch(e=>(c.warn(`Failed to read the legacy cone chat session`,{error:b(e)}),null))]),n=Array.isArray(t?.messages)?t.messages:[];return[...e,...n]}async function y(){return(await new a(new o).loadRootChatSession(`cone`))?.messages??[]}function b(e){return e instanceof Error?e.message:String(e)}async function x(){try{return(await v()).some(e=>S(e))}catch(e){return c.warn(`Failed to scan cone chat session for welcome lick`,{error:e instanceof Error?e.message:String(e)}),!1}}function S(e){let t=e.content;return typeof t==`string`?t.includes(m):Array.isArray(t)?t.some(e=>{if(typeof e==`string`)return e.includes(m);if(e&&typeof e==`object`){let t=e.text;if(typeof t==`string`)return t.includes(m)}return!1}):!1}async function C(e){let t=!1;try{t=await e.exists(l)}catch(e){return c.warn(`Failed to read welcomed marker`,{path:l,error:e instanceof Error?e.message:String(e)}),{isFirstRun:!1}}return t||await x()?{isFirstRun:!1}:{isFirstRun:!0}}async function w(e){await e.writeFile(l,`1`)}var T=`"action":"onboarding-complete-with-provider"`;function E(e){let t=e.content;return typeof t==`string`?t.includes(T):Array.isArray(t)?t.some(e=>{if(typeof e==`string`)return e.includes(T);if(e&&typeof e==`object`){let t=e.text;if(typeof t==`string`)return t.includes(T)}return!1}):!1}async function D(){try{return(await v()).some(e=>E(e))}catch(e){return c.warn(`Failed to scan cone chat session for final lick`,{error:e instanceof Error?e.message:String(e)}),!1}}function O(e){let{vfs:t,storage:n,firedWelcomeActions:r,persistFiredWelcomeActions:a,getOrchestrator:o,log:s}=e;i(n)||C(t).then(e=>{if(e.isFirstRun){if(r.has(`first-run`)){s.debug(`Suppressing welcome re-fire: first-run already in dedup ledger`);return}r.add(`first-run`),a(r),o().handleFirstRun()}}).catch(e=>s.warn(`Welcome detection failed`,e))}function k(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 A(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 j(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 M(e){let{OnboardingOrchestrator:n}=await t(async()=>{let{OnboardingOrchestrator:e}=await import(`./onboarding-orchestrator-BW5xLMjU.js`);return{OnboardingOrchestrator:e}},__vite__mapDeps([0,1,2,3,4,5])),r=null;return{get:()=>r||(r=new n({fs:e.fs,postSystemMessage:e.postSystemMessage,postDipReference:e.postDipReference,getProviderCatalogue:()=>j(e.providers),saveAccount:(t,n,r,i,a)=>e.providers.addAccount(t,n,r,i,a),setSelectedModel:t=>e.providers.setSelectedModelId(t),resolveModelLabel:(t,n)=>{try{return e.providers.getProviderModels(t).find(e=>e.id===n)?.name??null}catch{return null}},broadcastToDip:t=>e.broadcastToDip(t),fireFinalLick:t=>e.onFireFinalLick(t),onAccountsChanged:e.onAccountsChanged?()=>e.onAccountsChanged?.():void 0,launchOAuth:async(t,n)=>await N(t,n??null,e)}),r),peek:()=>r,buildCatalogue:()=>j(e.providers)}}async function N(e,n,r){try{let i=r.providers.getProviderConfig(e);if(!i.isOAuth||!i.onOAuthLogin&&!i.onOAuthLoginIntercepted)return{ok:!1,message:`Provider does not support OAuth.`};if(i.requiresBaseUrl&&n&&r.providers.addAccount(e,``,n),i.onOAuthLoginIntercepted){let{createInterceptingOAuthLauncherForCurrentRuntime:e}=await t(async()=>{let{createInterceptingOAuthLauncherForCurrentRuntime:e}=await import(`./oauth-service-DBNa_4eS.js`);return{createInterceptingOAuthLauncherForCurrentRuntime:e}},__vite__mapDeps([6,7,8,3,9,10,11,12])),n=await e();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:e}=await t(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-DBNa_4eS.js`);return{createOAuthLauncher:e}},__vite__mapDeps([6,7,8,3,9,10,11,12])),n=e();await i.onOAuthLogin(n,()=>void 0)}return{ok:!0,model:A(e,i,r.providers.getProviderModels,r.providers.isModelHiddenFromPicker)}}catch(e){return{ok:!1,message:e instanceof Error?e.message:`OAuth login failed.`}}}var P=new Set([`first-run`,`onboarding-complete`,`onboarding-complete-with-provider`,`shortcut-migrate`]),F=`slicc:welcome-flow-fired`;function I(){try{let e=typeof localStorage<`u`?localStorage.getItem(F):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 L(e){try{if(typeof localStorage>`u`)return;localStorage.setItem(F,JSON.stringify([...e]))}catch{}}function R(e,t,n,r,i){if(P.has(e)&&t.has(e)){i.debug(`Suppressing duplicate welcome lick (${r})`,{action:e});return}P.has(e)&&(t.add(e),L(t)),n()}var z=new Set([`first-run`,`onboarding-complete`,`connect-ready`,`connect-attempt`,`oauth-attempt`,`device-code-decision`,`shortcut-migrate`,`gelatiere-dismiss`,`gelatiere-install`,`gelatiere-try`]);function B(e){let{firedWelcomeActions:t,getAccounts:n,getProviderConfig:r,resolveDeviceCodeDecision:i,getOnboardingOrchestrator:a,applyPendingMount:o,fastForward:s,onShortcutMigrate:c,contextLabel:l,vfs:u,log:d}=e;return e=>{if(e.type!==`sprinkle`)return!1;let f=e.sprinkleName===`welcome`||e.sprinkleName===`inline`||e.sprinkleName===`suggestions`?e.body?.action:void 0;if(f&&P.has(f)){if(t.has(f))return d.debug(`Suppressing duplicate welcome lick (${l})`,{action:f}),!0;t.add(f),L(t)}if(!f||!z.has(f))return!1;let p=e.body;return Y(f,p,{getAccounts:n,getProviderConfig:r,resolveDeviceCodeDecision:i,getOnboardingOrchestrator:a,applyPendingMount:o,fastForward:s,onShortcutMigrate:c,vfs:u,log:d})}}function V(e,t){let n=e[t];return typeof n==`string`&&n?n:null}function H(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 U(e,t){let n=e?.data;return n&&t.getOnboardingOrchestrator().handleConnectAttempt({provider:String(n.provider??``),apiKey:String(n.apiKey??``),baseUrl:V(n,`baseUrl`),deployment:V(n,`deployment`),apiVersion:V(n,`apiVersion`),model:n.model==null?null:String(n.model)}).catch(e=>t.log.warn(`handleConnectAttempt failed`,e)),!0}function W(e,t){let n=e?.data;return n&&t.getOnboardingOrchestrator().handleOAuthAttempt({provider:String(n.provider??``),baseUrl:V(n,`baseUrl`)}).catch(e=>t.log.warn(`handleOAuthAttempt failed`,e)),!0}var G={"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":H,"connect-ready":(e,t)=>X(t),"connect-attempt":U,"oauth-attempt":W,"shortcut-migrate":(e,t)=>(t.onShortcutMigrate(),!0),"gelatiere-dismiss":(e,t)=>(J(e,t,`dismiss`),!0),"gelatiere-install":(e,t)=>(J(e,t,`take`),!1),"gelatiere-try":(e,t)=>(J(e,t,`take`),!1)},K;function q(){return K??=t(()=>import(`./wc-shell-DUnQ3yem.js`).then(e=>e.rt),__vite__mapDeps([13,3,1,7,14,15,9,16,17,18,19,20,21,8,10,22,23,11,24,25,26,5,27,28,29,30,31,32,33,34,35,36,37,38])),K}function J(e,t,n){let r=e?.data?.id;if(typeof r!=`string`||!r||!t.vfs)return;let i=t.vfs;q().then(({dismissGelatiereSuggestion:e,takeGelatiereSuggestion:t})=>n===`take`?t(i,r):e(i,r)).catch(e=>t.log.warn(`Failed to settle gelatiere suggestion`,e))}function Y(e,t,n){return G[e]?.(t,n)??!1}function X(e){let t=e.getAccounts();if(t.length===0)return e.getOnboardingOrchestrator().handleConnectReady(),!0;let n=t[0];return e.fastForward.broadcastAlreadyConnected(n.providerId),Z(e.vfs,n.providerId,e.fastForward.fire).catch(t=>e.log.warn(`Failed to fire fast-forward final lick`,t)),!0}async function Z(e,n,r){let{hasOnboardingFinalLickInHistory:i}=await t(async()=>{let{hasOnboardingFinalLickInHistory:e}=await import(`./welcome-detection-JV0kEwvY.js`);return{hasOnboardingFinalLickInHistory:e}},[]);if(await i())return;let a=e?await Q(e):{},{getSelectedModelId:o,getProviderConfig:s,getProviderModels:c}=await t(async()=>{let{getSelectedModelId:e,getProviderConfig:t,getProviderModels:n}=await import(`./main-CN0eXvpe.js`).then(e=>e.t);return{getSelectedModelId:e,getProviderConfig:t,getProviderModels:n}},__vite__mapDeps([39,3,1,18,7,19,20,21,8,9,10,22,23,11,24,16,25,17,26,5,27,28,29,31,40,41])),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 Q(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){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 ee(e){let{client:n,getController:r,openVfs:i,log:a}=e,o=await t(()=>import(`./main-CN0eXvpe.js`).then(e=>e.t),__vite__mapDeps([39,3,1,18,7,19,20,21,8,9,10,22,23,11,24,16,25,17,26,5,27,28,29,31,40,41])),{createSprinkleDeviceCodePrompter:c,resolveDeviceCodeDecision:l}=await t(async()=>{let{createSprinkleDeviceCodePrompter:e,resolveDeviceCodeDecision:t}=await import(`./device-code-bridge-CbHxw098.js`);return{createSprinkleDeviceCodePrompter:e,resolveDeviceCodeDecision:t}},[]),u=$(await i()),d=I(),f=e=>{let t=r();t?t.addAssistantMessage(e):a.warn(`WC onboarding: no controller to post welcome line`)},p=await M({fs:u,log:a,providers:o,deviceCode:{createSprinkleDeviceCodePrompter:c},postSystemMessage:f,postDipReference:f,broadcastToDip:e=>s(e),onFireFinalLick:e=>{k(n),R(String(e.action??``),d,()=>n.sendSprinkleLick(`welcome`,e),`orchestrator-wc`,a)},onAccountsChanged:()=>{try{typeof window<`u`&&window.dispatchEvent(new CustomEvent(`slicc:accounts-changed`))}catch(e){a.warn(`Failed to dispatch slicc:accounts-changed`,e)}}}),m=B({firedWelcomeActions:d,getAccounts:o.getAccounts,getProviderConfig:o.getProviderConfig,resolveDeviceCodeDecision:l,getOnboardingOrchestrator:()=>p.get(),fastForward:{fire:e=>{R(String(e.action??``),d,()=>n.sendSprinkleLick(`welcome`,e),`fast-forward-wc`,a)},broadcastAlreadyConnected:e=>{let t=(()=>{try{return o.getProviderConfig(e)?.name??null}catch{return null}})();s({type:`slicc-already-connected`,provider:e,note:t?`Already connected to ${t}.`:`Already connected.`})}},onShortcutMigrate:()=>{u.writeFile(`/shared/.welcomed`,`1`).catch(e=>a.warn(`Failed to persist welcome completion marker`,e))},contextLabel:`wc`,vfs:u,log:a});return O({vfs:u,storage:window.localStorage,firedWelcomeActions:d,persistFiredWelcomeActions:L,getOrchestrator:()=>p.get(),log:a}),{interceptWelcomeLick:m}}export{w as i,D as n,x as r,C as t,ee as wireWcOnboarding};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/onboarding-orchestrator-B5XUC4QP.js","assets/logger-dqckiMJt.js","assets/zip-stream-DZF8sKOl.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/transcript-export-DTRO8k03.js","assets/renamed-providers-d0bAaa0l.js","assets/oauth-service-DBNa_4eS.js","assets/preload-helper-BLdHbfdN.js","assets/proxied-fetch-2sdz8vNB.js","assets/base64-ELzoYfwP.js","assets/api-endpoint-CNqFa-M3.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/permissions-surface-registry-CilCRwhh.js","assets/wc-shell-Dviry0M3.js","assets/dictation-priming-BHJC0hch.js","assets/mime-types-D0xZwlMO.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-CbKQrU_A.js","assets/core-BXRpM6QF.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/feature-flags-DDJdMcuw.js","assets/secret-topology-BuXN_6_0.js","assets/secrets-bridge-client-BD4AHTxg.js","assets/image-markers-4eaAm9QS.js","assets/stored-accounts-CdMZdZUa.js","assets/providers-s2pRjrQo.js","assets/bedrock-camp-compat-D6dUCn_T.js","assets/bedrock-camp-extra-models-COVvjLB5.js","assets/claude-model-version-3MWQoaco.js","assets/sha256-DynDhwRL.js","assets/telemetry-kqkj0A7x.js","assets/GELATIERE-CLK_MA5a.js","assets/types-D8gIX-W-.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-Bn0sfTur.js","assets/message-envelope-BPSSjJbW.js","assets/agent-message-to-chat-BiZHDYFR.js","assets/wc-shell-WkeczD9x.css","assets/main-C8hdX5_E.js","assets/tray-follower-status-BAjnN7Ar.js","assets/clipboard-eqmn97SP.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./logger-dqckiMJt.js";import{t}from"./preload-helper-BLdHbfdN.js";import{A as n,k as r}from"./zip-stream-DZF8sKOl.js";import{g as i}from"./main-C8hdX5_E.js";import{t as a}from"./sessions-Bd6uu3F5.js";import{t as o}from"./store-DP4F8FwF.js";import{V as s}from"./wc-live-jfkgv1D5.js";var c=e(`welcome-detection`),l=`/shared/.welcomed`,u=`browser-coding-agent`,d=1,f=`sessions`,p=n({folder:r}),m=`[Sprinkle Event: welcome]`;function h(){return new Promise((e,t)=>{let n=indexedDB.open(u,d);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(f)||e.createObjectStore(f,{keyPath:`id`})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error),n.onblocked=()=>{}})}function g(){return h().catch(()=>new Promise((e,t)=>{setTimeout(()=>{h().then(e,t)},120)}))}async function _(){let e=await g();try{return await new Promise((t,n)=>{let r=e.transaction(f,`readonly`).objectStore(f).get(p);r.onsuccess=()=>t(r.result??null),r.onerror=()=>n(r.error)})}finally{e.close()}}async function v(){let[e,t]=await Promise.all([y().catch(e=>(c.warn(`Failed to read the cone conversation record`,{error:b(e)}),[])),_().catch(e=>(c.warn(`Failed to read the legacy cone chat session`,{error:b(e)}),null))]),n=Array.isArray(t?.messages)?t.messages:[];return[...e,...n]}async function y(){return(await new a(new o).loadRootChatSession(`cone`))?.messages??[]}function b(e){return e instanceof Error?e.message:String(e)}async function x(){try{return(await v()).some(e=>S(e))}catch(e){return c.warn(`Failed to scan cone chat session for welcome lick`,{error:e instanceof Error?e.message:String(e)}),!1}}function S(e){let t=e.content;return typeof t==`string`?t.includes(m):Array.isArray(t)?t.some(e=>{if(typeof e==`string`)return e.includes(m);if(e&&typeof e==`object`){let t=e.text;if(typeof t==`string`)return t.includes(m)}return!1}):!1}async function C(e){let t=!1;try{t=await e.exists(l)}catch(e){return c.warn(`Failed to read welcomed marker`,{path:l,error:e instanceof Error?e.message:String(e)}),{isFirstRun:!1}}return t||await x()?{isFirstRun:!1}:{isFirstRun:!0}}async function w(e){await e.writeFile(l,`1`)}var T=`"action":"onboarding-complete-with-provider"`;function E(e){let t=e.content;return typeof t==`string`?t.includes(T):Array.isArray(t)?t.some(e=>{if(typeof e==`string`)return e.includes(T);if(e&&typeof e==`object`){let t=e.text;if(typeof t==`string`)return t.includes(T)}return!1}):!1}async function D(){try{return(await v()).some(e=>E(e))}catch(e){return c.warn(`Failed to scan cone chat session for final lick`,{error:e instanceof Error?e.message:String(e)}),!1}}function O(e){let{vfs:t,storage:n,firedWelcomeActions:r,persistFiredWelcomeActions:a,getOrchestrator:o,log:s}=e;i(n)||C(t).then(e=>{if(e.isFirstRun){if(r.has(`first-run`)){s.debug(`Suppressing welcome re-fire: first-run already in dedup ledger`);return}r.add(`first-run`),a(r),o().handleFirstRun()}}).catch(e=>s.warn(`Welcome detection failed`,e))}function k(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 A(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 j(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 M(e){let{OnboardingOrchestrator:n}=await t(async()=>{let{OnboardingOrchestrator:e}=await import(`./onboarding-orchestrator-B5XUC4QP.js`);return{OnboardingOrchestrator:e}},__vite__mapDeps([0,1,2,3,4,5])),r=null;return{get:()=>r||(r=new n({fs:e.fs,postSystemMessage:e.postSystemMessage,postDipReference:e.postDipReference,getProviderCatalogue:()=>j(e.providers),saveAccount:(t,n,r,i,a)=>e.providers.addAccount(t,n,r,i,a),setSelectedModel:t=>e.providers.setSelectedModelId(t),resolveModelLabel:(t,n)=>{try{return e.providers.getProviderModels(t).find(e=>e.id===n)?.name??null}catch{return null}},broadcastToDip:t=>e.broadcastToDip(t),fireFinalLick:t=>e.onFireFinalLick(t),onAccountsChanged:e.onAccountsChanged?()=>e.onAccountsChanged?.():void 0,launchOAuth:async(t,n)=>await N(t,n??null,e)}),r),peek:()=>r,buildCatalogue:()=>j(e.providers)}}async function N(e,n,r){try{let i=r.providers.getProviderConfig(e);if(!i.isOAuth||!i.onOAuthLogin&&!i.onOAuthLoginIntercepted)return{ok:!1,message:`Provider does not support OAuth.`};if(i.requiresBaseUrl&&n&&r.providers.addAccount(e,``,n),i.onOAuthLoginIntercepted){let{createInterceptingOAuthLauncherForCurrentRuntime:e}=await t(async()=>{let{createInterceptingOAuthLauncherForCurrentRuntime:e}=await import(`./oauth-service-DBNa_4eS.js`);return{createInterceptingOAuthLauncherForCurrentRuntime:e}},__vite__mapDeps([6,7,8,3,9,10,11,12])),n=await e();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:e}=await t(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-DBNa_4eS.js`);return{createOAuthLauncher:e}},__vite__mapDeps([6,7,8,3,9,10,11,12])),n=e();await i.onOAuthLogin(n,()=>void 0)}return{ok:!0,model:A(e,i,r.providers.getProviderModels,r.providers.isModelHiddenFromPicker)}}catch(e){return{ok:!1,message:e instanceof Error?e.message:`OAuth login failed.`}}}var P=new Set([`first-run`,`onboarding-complete`,`onboarding-complete-with-provider`,`shortcut-migrate`]),F=`slicc:welcome-flow-fired`;function I(){try{let e=typeof localStorage<`u`?localStorage.getItem(F):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 L(e){try{if(typeof localStorage>`u`)return;localStorage.setItem(F,JSON.stringify([...e]))}catch{}}function R(e,t,n,r,i){if(P.has(e)&&t.has(e)){i.debug(`Suppressing duplicate welcome lick (${r})`,{action:e});return}P.has(e)&&(t.add(e),L(t)),n()}var z=new Set([`first-run`,`onboarding-complete`,`connect-ready`,`connect-attempt`,`oauth-attempt`,`device-code-decision`,`shortcut-migrate`,`gelatiere-dismiss`,`gelatiere-install`,`gelatiere-try`]);function B(e){let{firedWelcomeActions:t,getAccounts:n,getProviderConfig:r,resolveDeviceCodeDecision:i,getOnboardingOrchestrator:a,applyPendingMount:o,fastForward:s,onShortcutMigrate:c,contextLabel:l,vfs:u,log:d}=e;return e=>{if(e.type!==`sprinkle`)return!1;let f=e.sprinkleName===`welcome`||e.sprinkleName===`inline`||e.sprinkleName===`suggestions`?e.body?.action:void 0;if(f&&P.has(f)){if(t.has(f))return d.debug(`Suppressing duplicate welcome lick (${l})`,{action:f}),!0;t.add(f),L(t)}if(!f||!z.has(f))return!1;let p=e.body;return Y(f,p,{getAccounts:n,getProviderConfig:r,resolveDeviceCodeDecision:i,getOnboardingOrchestrator:a,applyPendingMount:o,fastForward:s,onShortcutMigrate:c,vfs:u,log:d})}}function V(e,t){let n=e[t];return typeof n==`string`&&n?n:null}function H(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 U(e,t){let n=e?.data;return n&&t.getOnboardingOrchestrator().handleConnectAttempt({provider:String(n.provider??``),apiKey:String(n.apiKey??``),baseUrl:V(n,`baseUrl`),deployment:V(n,`deployment`),apiVersion:V(n,`apiVersion`),model:n.model==null?null:String(n.model)}).catch(e=>t.log.warn(`handleConnectAttempt failed`,e)),!0}function W(e,t){let n=e?.data;return n&&t.getOnboardingOrchestrator().handleOAuthAttempt({provider:String(n.provider??``),baseUrl:V(n,`baseUrl`)}).catch(e=>t.log.warn(`handleOAuthAttempt failed`,e)),!0}var G={"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":H,"connect-ready":(e,t)=>X(t),"connect-attempt":U,"oauth-attempt":W,"shortcut-migrate":(e,t)=>(t.onShortcutMigrate(),!0),"gelatiere-dismiss":(e,t)=>(J(e,t,`dismiss`),!0),"gelatiere-install":(e,t)=>(J(e,t,`take`),!1),"gelatiere-try":(e,t)=>(J(e,t,`take`),!1)},K;function q(){return K??=t(()=>import(`./wc-shell-Dviry0M3.js`).then(e=>e.rt),__vite__mapDeps([13,3,1,7,14,15,9,16,17,18,19,20,21,8,10,22,23,11,24,25,26,5,27,28,29,30,31,32,33,34,35,36,37,38])),K}function J(e,t,n){let r=e?.data?.id;if(typeof r!=`string`||!r||!t.vfs)return;let i=t.vfs;q().then(({dismissGelatiereSuggestion:e,takeGelatiereSuggestion:t})=>n===`take`?t(i,r):e(i,r)).catch(e=>t.log.warn(`Failed to settle gelatiere suggestion`,e))}function Y(e,t,n){return G[e]?.(t,n)??!1}function X(e){let t=e.getAccounts();if(t.length===0)return e.getOnboardingOrchestrator().handleConnectReady(),!0;let n=t[0];return e.fastForward.broadcastAlreadyConnected(n.providerId),Z(e.vfs,n.providerId,e.fastForward.fire).catch(t=>e.log.warn(`Failed to fire fast-forward final lick`,t)),!0}async function Z(e,n,r){let{hasOnboardingFinalLickInHistory:i}=await t(async()=>{let{hasOnboardingFinalLickInHistory:e}=await import(`./welcome-detection-CWqP_ofb.js`);return{hasOnboardingFinalLickInHistory:e}},[]);if(await i())return;let a=e?await Q(e):{},{getSelectedModelId:o,getProviderConfig:s,getProviderModels:c}=await t(async()=>{let{getSelectedModelId:e,getProviderConfig:t,getProviderModels:n}=await import(`./main-C8hdX5_E.js`).then(e=>e.t);return{getSelectedModelId:e,getProviderConfig:t,getProviderModels:n}},__vite__mapDeps([39,3,1,18,7,19,20,21,8,9,10,22,23,11,24,16,25,17,26,5,27,28,29,31,40,41])),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 Q(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){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 ee(e){let{client:n,getController:r,openVfs:i,log:a}=e,o=await t(()=>import(`./main-C8hdX5_E.js`).then(e=>e.t),__vite__mapDeps([39,3,1,18,7,19,20,21,8,9,10,22,23,11,24,16,25,17,26,5,27,28,29,31,40,41])),{createSprinkleDeviceCodePrompter:c,resolveDeviceCodeDecision:l}=await t(async()=>{let{createSprinkleDeviceCodePrompter:e,resolveDeviceCodeDecision:t}=await import(`./device-code-bridge-CbHxw098.js`);return{createSprinkleDeviceCodePrompter:e,resolveDeviceCodeDecision:t}},[]),u=$(await i()),d=I(),f=e=>{let t=r();t?t.addAssistantMessage(e):a.warn(`WC onboarding: no controller to post welcome line`)},p=await M({fs:u,log:a,providers:o,deviceCode:{createSprinkleDeviceCodePrompter:c},postSystemMessage:f,postDipReference:f,broadcastToDip:e=>s(e),onFireFinalLick:e=>{k(n),R(String(e.action??``),d,()=>n.sendSprinkleLick(`welcome`,e),`orchestrator-wc`,a)},onAccountsChanged:()=>{try{typeof window<`u`&&window.dispatchEvent(new CustomEvent(`slicc:accounts-changed`))}catch(e){a.warn(`Failed to dispatch slicc:accounts-changed`,e)}}}),m=B({firedWelcomeActions:d,getAccounts:o.getAccounts,getProviderConfig:o.getProviderConfig,resolveDeviceCodeDecision:l,getOnboardingOrchestrator:()=>p.get(),fastForward:{fire:e=>{R(String(e.action??``),d,()=>n.sendSprinkleLick(`welcome`,e),`fast-forward-wc`,a)},broadcastAlreadyConnected:e=>{let t=(()=>{try{return o.getProviderConfig(e)?.name??null}catch{return null}})();s({type:`slicc-already-connected`,provider:e,note:t?`Already connected to ${t}.`:`Already connected.`})}},onShortcutMigrate:()=>{u.writeFile(`/shared/.welcomed`,`1`).catch(e=>a.warn(`Failed to persist welcome completion marker`,e))},contextLabel:`wc`,vfs:u,log:a});return O({vfs:u,storage:window.localStorage,firedWelcomeActions:d,persistFiredWelcomeActions:L,getOrchestrator:()=>p.get(),log:a}),{interceptWelcomeLick:m}}export{w as i,D as n,x as r,C as t,ee as wireWcOnboarding};
@@ -1,3 +1,3 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mount-picker-popup-DE6OgmCv.js","assets/logger-dqckiMJt.js","assets/picker-popup-DioAkr8b.js","assets/api-endpoint-CNqFa-M3.js","assets/remote-terminal-view-D95a_lGP.js","assets/core-BXRpM6QF.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-BLdHbfdN.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/feature-flags-DDJdMcuw.js","assets/proxied-fetch-2sdz8vNB.js","assets/base64-ELzoYfwP.js","assets/secret-topology-BuXN_6_0.js","assets/secrets-bridge-client-BD4AHTxg.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/image-markers-4eaAm9QS.js","assets/permissions-surface-registry-CilCRwhh.js","assets/hid-device-registry-B2R-0rNt.js","assets/browser-OXhgs9Cl.js","assets/serial-port-registry-CCqklAEr.js","assets/usb-device-registry--JwKRTYp.js","assets/usb-operations-Dx9QXlZ0.js","assets/terminal-session-client-DmE-iBjP.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mount-picker-popup-DE6OgmCv.js","assets/logger-dqckiMJt.js","assets/picker-popup-DioAkr8b.js","assets/api-endpoint-CNqFa-M3.js","assets/remote-terminal-view-ML6zl31u.js","assets/core-BXRpM6QF.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-BLdHbfdN.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/feature-flags-DDJdMcuw.js","assets/proxied-fetch-2sdz8vNB.js","assets/base64-ELzoYfwP.js","assets/secret-topology-BuXN_6_0.js","assets/secrets-bridge-client-BD4AHTxg.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/image-markers-4eaAm9QS.js","assets/permissions-surface-registry-CilCRwhh.js","assets/hid-device-registry-B2R-0rNt.js","assets/browser-OXhgs9Cl.js","assets/serial-port-registry-CCqklAEr.js","assets/usb-device-registry--JwKRTYp.js","assets/usb-operations-Dx9QXlZ0.js","assets/terminal-session-client-DmE-iBjP.js"])))=>i.map(i=>d[i]);
2
2
  import{t as e}from"./logger-dqckiMJt.js";import{t}from"./preload-helper-BLdHbfdN.js";import{n}from"./permissions-surface-registry-CilCRwhh.js";var r=e(`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(e){let n=i();try{let{storePendingHandle:r}=await t(async()=>{let{storePendingHandle:e}=await import(`./mount-picker-popup-DE6OgmCv.js`);return{storePendingHandle:e}},__vite__mapDeps([0,1,2,3]));await r(n,e)}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 t(()=>import(`./mount-picker-popup-DE6OgmCv.js`),__vite__mapDeps([0,1,2,3]))}async function m(){let{localMountIdbKey:e}=await t(async()=>{let{localMountIdbKey:e}=await import(`./remote-terminal-view-D95a_lGP.js`);return{localMountIdbKey:e}},__vite__mapDeps([4,5,6,1,7,8,9,10,11,12,3,13,14,15,16,17,0,2,18,19,20,21,22,23]));return e}export{a as installLeaderPermissionsSurface,d as installMountPendingConsumer};
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 t(()=>import(`./mount-picker-popup-DE6OgmCv.js`),__vite__mapDeps([0,1,2,3]))}async function m(){let{localMountIdbKey:e}=await t(async()=>{let{localMountIdbKey:e}=await import(`./remote-terminal-view-ML6zl31u.js`);return{localMountIdbKey:e}},__vite__mapDeps([4,5,6,1,7,8,9,10,11,12,3,13,14,15,16,17,0,2,18,19,20,21,22,23]));return e}export{a as installLeaderPermissionsSurface,d as installMountPendingConsumer};
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/quick-llm-BgX8DGOf.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/logger-dqckiMJt.js","assets/core-BXRpM6QF.js","assets/preload-helper-BLdHbfdN.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/feature-flags-DDJdMcuw.js","assets/proxied-fetch-2sdz8vNB.js","assets/base64-ELzoYfwP.js","assets/api-endpoint-CNqFa-M3.js","assets/secret-topology-BuXN_6_0.js","assets/secrets-bridge-client-BD4AHTxg.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/image-markers-4eaAm9QS.js","assets/account-store-CEqw_XTp.js","assets/stored-accounts-CdMZdZUa.js","assets/providers-DUsi8UJy.js","assets/renamed-providers-d0bAaa0l.js","assets/bedrock-camp-compat-D6dUCn_T.js","assets/bedrock-camp-extra-models-COVvjLB5.js","assets/claude-model-version-3MWQoaco.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-Bn0sfTur.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/quick-llm-DcceQmkj.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/logger-dqckiMJt.js","assets/core-BXRpM6QF.js","assets/preload-helper-BLdHbfdN.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/feature-flags-DDJdMcuw.js","assets/proxied-fetch-2sdz8vNB.js","assets/base64-ELzoYfwP.js","assets/api-endpoint-CNqFa-M3.js","assets/secret-topology-BuXN_6_0.js","assets/secrets-bridge-client-BD4AHTxg.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/image-markers-4eaAm9QS.js","assets/account-store-CbKQrU_A.js","assets/stored-accounts-CdMZdZUa.js","assets/providers-s2pRjrQo.js","assets/renamed-providers-d0bAaa0l.js","assets/bedrock-camp-compat-D6dUCn_T.js","assets/bedrock-camp-extra-models-COVvjLB5.js","assets/claude-model-version-3MWQoaco.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-Bn0sfTur.js"])))=>i.map(i=>d[i]);
2
2
  import{m as e}from"./core-BXRpM6QF.js";import{t}from"./preload-helper-BLdHbfdN.js";import{a as n}from"./dictation-priming-BHJC0hch.js";var r=400,i=800,a=`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 o(t,n){return t.length>n?`${e(t,n)}…`:t}function s(e){let t=e.filter(e=>!e.isStreaming&&!e.queued&&e.source!==`lick`),a=[...t].reverse().find(e=>e.role===`assistant`),s=t.filter(e=>e.role===`user`).slice(-3);return!a||s.length===0?null:[...s.map(e=>`[user]: ${o(n(e.content),r)}`),`[assistant]: ${o(a.content,i)}`].join(`
3
3
 
4
- `)}async function c(e){if(e.currentValue.length>0)return;let n=s(e.messages);if(!n){e.setPlaceholder(e.defaultPlaceholder);return}let r=await(e.quickLabelFn??(await t(async()=>{let{quickLabel:e}=await import(`./quick-llm-BgX8DGOf.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]))).quickLabel)({system:a,prompt:`Recent conversation:\n${n}`,maxTokens:40,signal:e.signal});e.signal?.aborted||e.currentValue.length>0||e.setPlaceholder(r&&r.length>0?r:e.defaultPlaceholder)}function l(e,t,n){t===n?(e.removeAttribute(`suggestion`),e.setAttribute(`placeholder`,t)):e.setAttribute(`suggestion`,t)}function u(e){let t=null;return()=>{e.inputCard.hasAttribute(`disabled`)||(t?.abort(),t=new AbortController,c({messages:e.getMessages(),currentValue:e.inputCard.value??``,setPlaceholder:t=>l(e.inputCard,t,e.defaultPlaceholder),defaultPlaceholder:e.defaultPlaceholder,signal:t.signal}).catch(()=>void 0))}}export{u as createPlaceholderRefresher};
4
+ `)}async function c(e){if(e.currentValue.length>0)return;let n=s(e.messages);if(!n){e.setPlaceholder(e.defaultPlaceholder);return}let r=await(e.quickLabelFn??(await t(async()=>{let{quickLabel:e}=await import(`./quick-llm-DcceQmkj.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]))).quickLabel)({system:a,prompt:`Recent conversation:\n${n}`,maxTokens:40,signal:e.signal});e.signal?.aborted||e.currentValue.length>0||e.setPlaceholder(r&&r.length>0?r:e.defaultPlaceholder)}function l(e,t,n){t===n?(e.removeAttribute(`suggestion`),e.setAttribute(`placeholder`,t)):e.setAttribute(`suggestion`,t)}function u(e){let t=null;return()=>{e.inputCard.hasAttribute(`disabled`)||(t?.abort(),t=new AbortController,c({messages:e.getMessages(),currentValue:e.inputCard.value??``,setPlaceholder:t=>l(e.inputCard,t,e.defaultPlaceholder),defaultPlaceholder:e.defaultPlaceholder,signal:t.signal}).catch(()=>void 0))}}export{u as createPlaceholderRefresher};
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/wc-transcript-export-BXCZhTfg.js","assets/preload-helper-BLdHbfdN.js","assets/transcript-export-DTRO8k03.js","assets/export-spool-RoQF-YEe.js","assets/zip-stream-DZF8sKOl.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/renamed-providers-d0bAaa0l.js","assets/logger-dqckiMJt.js","assets/main-CN0eXvpe.js","assets/core-BXRpM6QF.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/feature-flags-DDJdMcuw.js","assets/proxied-fetch-2sdz8vNB.js","assets/base64-ELzoYfwP.js","assets/api-endpoint-CNqFa-M3.js","assets/secret-topology-BuXN_6_0.js","assets/secrets-bridge-client-BD4AHTxg.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/image-markers-4eaAm9QS.js","assets/bridge-protocol-C52CnDIj.js","assets/stored-accounts-CdMZdZUa.js","assets/account-store-CEqw_XTp.js","assets/providers-DUsi8UJy.js","assets/bedrock-camp-compat-D6dUCn_T.js","assets/bedrock-camp-extra-models-COVvjLB5.js","assets/claude-model-version-3MWQoaco.js","assets/telemetry-kqkj0A7x.js","assets/tray-follower-status-BAjnN7Ar.js","assets/clipboard-eqmn97SP.js","assets/profile-export-CtsEeuL-.js","assets/sha256-DynDhwRL.js","assets/lick-target-match-mT46VVD2.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-BLdHbfdN.js";import{x as t}from"./wc-live-mNieNNOh.js";var n=`https://seven.sliccy.ai`,r=`slicc-profile-export-style`,i={env:`environment file, often holds keys`,pem:`PEM file, may be a private key`,"git-credentials":`git credentials in plain text`,npmrc:`npm config, may hold an auth token`,"slicc-oauth":`SLICC 6 OAuth state`},a={"secrets-env":`secrets.env`,"chrome-storage":`extension secrets`,"github-token":`the GitHub token`,"mcp-tokens":`MCP tokens`},o=`Your API keys and logins don't move. You'll enter them again in SLICC 7's Settings.`,s=`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/wc-transcript-export-BLZIE8ep.js","assets/preload-helper-BLdHbfdN.js","assets/transcript-export-DTRO8k03.js","assets/export-spool-RoQF-YEe.js","assets/zip-stream-DZF8sKOl.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/renamed-providers-d0bAaa0l.js","assets/logger-dqckiMJt.js","assets/main-C8hdX5_E.js","assets/core-BXRpM6QF.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/feature-flags-DDJdMcuw.js","assets/proxied-fetch-2sdz8vNB.js","assets/base64-ELzoYfwP.js","assets/api-endpoint-CNqFa-M3.js","assets/secret-topology-BuXN_6_0.js","assets/secrets-bridge-client-BD4AHTxg.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/image-markers-4eaAm9QS.js","assets/bridge-protocol-C52CnDIj.js","assets/stored-accounts-CdMZdZUa.js","assets/account-store-CbKQrU_A.js","assets/providers-s2pRjrQo.js","assets/bedrock-camp-compat-D6dUCn_T.js","assets/bedrock-camp-extra-models-COVvjLB5.js","assets/claude-model-version-3MWQoaco.js","assets/telemetry-kqkj0A7x.js","assets/tray-follower-status-BAjnN7Ar.js","assets/clipboard-eqmn97SP.js","assets/profile-export-CtsEeuL-.js","assets/sha256-DynDhwRL.js","assets/lick-target-match-mT46VVD2.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-BLdHbfdN.js";import{x as t}from"./wc-live-jfkgv1D5.js";var n=`https://seven.sliccy.ai`,r=`slicc-profile-export-style`,i={env:`environment file, often holds keys`,pem:`PEM file, may be a private key`,"git-credentials":`git credentials in plain text`,npmrc:`npm config, may hold an auth token`,"slicc-oauth":`SLICC 6 OAuth state`},a={"secrets-env":`secrets.env`,"chrome-storage":`extension secrets`,"github-token":`the GitHub token`,"mcp-tokens":`MCP tokens`},o=`Your API keys and logins don't move. You'll enter them again in SLICC 7's Settings.`,s=`
3
3
  slicc-dialog.wcpx-dialog::part(dialog){width:min(560px,94vw);}
4
4
  .wcpx{display:flex;flex-direction:column;gap:12px;font-family:var(--ui);color:var(--ink);font-size:13px;line-height:1.45;}
5
5
  .wcpx__lead{margin:0;color:var(--txt-2);}
@@ -22,4 +22,4 @@ slicc-dialog.wcpx-dialog::part(dialog){width:min(560px,94vw);}
22
22
  .wcpx__btn[disabled]{opacity:.5;cursor:default;}
23
23
  .wcpx a{color:var(--ctx);}
24
24
  `;function c(e){if(e.getElementById(r))return;let t=e.createElement(`style`);t.id=r,t.textContent=s,e.head.appendChild(t)}function l(e,t,n){let r=document.createElement(e);return r.className=t,n!==void 0&&(r.textContent=n),r}function u(e){if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`],n=e/1024,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r++;return`${n.toFixed(+(n<10))} ${t[r]}`}function d(e,t,n=`${t}s`){return`${e} ${e===1?t:n}`}function f(e){let t=[d(e.cones,`cone`),d(e.scoops,`scoop`),d(e.frozen,`frozen chat`),d(e.files,`file`),d(e.skills,`skill`),d(e.sprinkles,`sprinkle`)],n=d(e.archives.length,`zip`);return`${t.join(`, `)}: ${u(e.bytes)} in ${n}.`}function p(e){let t=[];return e.mounts.length>0&&t.push(`mounts (${e.mounts.join(`, `)})`),e.secrets.length>0&&t.push(e.secrets.map(e=>a[e]??e).join(`, `)),e.mcp.length>0&&t.push(`MCP connections (${e.mcp.map(e=>e.name).join(`, `)}; add them again)`),t.length>0?`Not exported: ${t.join(`; `)}.`:null}function m(e,t){let r=[],a=e.archives.join(`, `);r.push(t.dryRun?`export-profile: would write ${a} (dry run, nothing saved)`:`export-profile: saved ${a} to Downloads`),r.push(` ${f(e)}`);let s=e.providers.length>0?e.providers.join(`, `):`none`;if(r.push(o),r.push(` Providers to re-enter: ${s}`),e.flagged.length>0){r.push(`Warning: the zip holds ${d(e.flagged.length,`credential-like file`)} in the clear:`);for(let t of e.flagged)r.push(` ${t.sourcePath} (${u(t.size)}): ${i[t.rule]}`)}let c=p(e);return c&&r.push(c),r.push(`Import it in SLICC 7 (${n}): Freezer → Import from SLICC 6…`),`${r.join(`
25
- `)}\n`}async function h(t,n){let{transcriptZipToBlob:r,downloadTranscriptBlob:i}=await e(async()=>{let{transcriptZipToBlob:e,downloadTranscriptBlob:t}=await import(`./wc-transcript-export-BXCZhTfg.js`);return{transcriptZipToBlob:e,downloadTranscriptBlob:t}},__vite__mapDeps([0,1,2,3,4,5,6,7])),a=t.open(n);await i(await r(a),a.filename)}async function g(e,t={}){for(let n=0;n<e.archives.length;n++){let r=e.archives[n];t.onArchive?.(n,r),await h(r,t.signal)}}async function _(){try{let{getProviderConfig:t}=await e(async()=>{let{getProviderConfig:e}=await import(`./main-CN0eXvpe.js`).then(e=>e.t);return{getProviderConfig:e}},__vite__mapDeps([8,5,7,9,1,10,11,12,13,14,15,16,17,18,19,20,21,22,23,6,24,25,26,27,28,29]));return e=>t(e).name||e}catch{return e=>e}}async function v(n){let{planProfileExport:r}=await e(async()=>{let{planProfileExport:e}=await import(`./profile-export-CtsEeuL-.js`).then(e=>e.n);return{planProfileExport:e}},__vite__mapDeps([30,5,31,4,2,6,7,32]));return r(t(),n)}async function y(e,t=S){let n=e.dryRun?await v():await t();if(!n)throw Error(`export cancelled in the SLICC tab; nothing was saved`);return{report:m(n.summary,e),archives:n.summary.archives}}function b(e){if(e instanceof Error&&e.message){let t=e.detail;return typeof t==`string`&&t?`${e.message}: ${t}`:e.message}return String(e)}function x(e,t=e=>e){let n=l(`div`,`wcpx`);n.append(l(`div`,`wcpx__summary`,f(e)));let r=l(`div`,`wcpx__box`);if(r.dataset.profileExport=`keys`,r.append(l(`div`,`wcpx__title`,o)),e.providers.length>0){r.append(l(`div`,`wcpx__muted`,`Providers to set up again:`));let n=l(`div`,`wcpx__chips`);for(let r of e.providers){let e=l(`span`,`wcpx__chip`,t(r));e.title=r,n.append(e)}r.append(n)}else r.append(l(`div`,`wcpx__muted`,`No provider accounts are set up here.`));if(n.append(r),e.flagged.length>0){let t=l(`div`,`wcpx__box wcpx__box--warn`);t.dataset.profileExport=`flagged`,t.setAttribute(`role`,`alert`),t.append(l(`div`,`wcpx__title`,`The zip holds ${d(e.flagged.length,`credential-like file`)} in the clear. Anyone with the zip can read them.`));let r=l(`ul`,`wcpx__files`);for(let t of e.flagged){let e=l(`li`,`wcpx__file`);e.append(l(`span`,`wcpx__path`,t.sourcePath),l(`span`,`wcpx__why`,`${u(t.size)}, ${i[t.rule]}`)),r.append(e)}t.append(r,l(`div`,`wcpx__muted`,`Delete or move them in SLICC 7 if you don't need them there.`)),n.append(t)}let a=p(e);return a&&n.append(l(`div`,`wcpx__muted`,a)),n}function S(e={}){c(document);let t=e.plan??v,r=e.save??g,i=new AbortController,a=document.createElement(`slicc-dialog`);a.classList.add(`wcpx-dialog`),a.setAttribute(`heading`,`Export for SLICC 7`);let o=l(`div`,`wcpx`),s=l(`p`,`wcpx__lead`);s.append(`SLICC 7 is at `);let u=document.createElement(`a`);u.href=n,u.target=`_blank`,u.rel=`noopener`,u.textContent=`seven.sliccy.ai`,s.append(u,`. This saves your cones, chats, files, memory, skills and licks as a zip you import there.`);let d=l(`div`,``),f=l(`div`,`wcpx__status`,`Reading your profile…`);f.setAttribute(`aria-live`,`polite`),o.append(s,d,f),a.append(o);let p=l(`button`,`wcpx__btn`,`Cancel`);p.type=`button`,p.slot=`footer`,p.dataset.profileExportAction=`cancel`;let m=l(`button`,`wcpx__btn wcpx__btn--primary`,`Export`);m.type=`button`,m.slot=`footer`,m.disabled=!0,m.dataset.profileExportAction=`export`,a.append(p,m);let h=(e,t=!1)=>{f.textContent=e,f.toggleAttribute(`data-error`,t)},y=null,S=null,C=!1;return p.addEventListener(`click`,()=>a.hide?.()),m.addEventListener(`click`,()=>{if(C){a.hide?.();return}if(!y)return;let e=y;m.disabled=!0,r(e,{signal:i.signal,onArchive:(t,n)=>h(e.archives.length>1?`Saving ${n.filename} (${t+1} of ${e.archives.length})…`:`Saving ${n.filename}…`)}).then(()=>{C=!0,S=e,h(`Saved to Downloads: ${e.summary.archives.join(`, `)}. Open seven.sliccy.ai and import it in the Freezer.`),m.textContent=`Done`,m.disabled=!1,p.hidden=!0}).catch(e=>{h(`Export failed: ${b(e)}`,!0),m.disabled=!1})}),new Promise(n=>{a.addEventListener(`slicc-dialog-close`,()=>{i.abort(),a.remove(),n(S)}),document.body.append(a),a.show?.(),Promise.all([t(i.signal),(e.providerNames??_)()]).then(([e,t])=>{y=e,d.replaceWith(x(e.summary,t)),h(``),m.textContent=e.archives.length>1?`Export ${e.archives.length} zips`:`Export`,m.disabled=!1}).catch(e=>{i.signal.aborted||h(`Export failed: ${b(e)}`,!0)})})}export{y as runProfileExportHeadless,S as showProfileExportDialog};
25
+ `)}\n`}async function h(t,n){let{transcriptZipToBlob:r,downloadTranscriptBlob:i}=await e(async()=>{let{transcriptZipToBlob:e,downloadTranscriptBlob:t}=await import(`./wc-transcript-export-BLZIE8ep.js`);return{transcriptZipToBlob:e,downloadTranscriptBlob:t}},__vite__mapDeps([0,1,2,3,4,5,6,7])),a=t.open(n);await i(await r(a),a.filename)}async function g(e,t={}){for(let n=0;n<e.archives.length;n++){let r=e.archives[n];t.onArchive?.(n,r),await h(r,t.signal)}}async function _(){try{let{getProviderConfig:t}=await e(async()=>{let{getProviderConfig:e}=await import(`./main-C8hdX5_E.js`).then(e=>e.t);return{getProviderConfig:e}},__vite__mapDeps([8,5,7,9,1,10,11,12,13,14,15,16,17,18,19,20,21,22,23,6,24,25,26,27,28,29]));return e=>t(e).name||e}catch{return e=>e}}async function v(n){let{planProfileExport:r}=await e(async()=>{let{planProfileExport:e}=await import(`./profile-export-CtsEeuL-.js`).then(e=>e.n);return{planProfileExport:e}},__vite__mapDeps([30,5,31,4,2,6,7,32]));return r(t(),n)}async function y(e,t=S){let n=e.dryRun?await v():await t();if(!n)throw Error(`export cancelled in the SLICC tab; nothing was saved`);return{report:m(n.summary,e),archives:n.summary.archives}}function b(e){if(e instanceof Error&&e.message){let t=e.detail;return typeof t==`string`&&t?`${e.message}: ${t}`:e.message}return String(e)}function x(e,t=e=>e){let n=l(`div`,`wcpx`);n.append(l(`div`,`wcpx__summary`,f(e)));let r=l(`div`,`wcpx__box`);if(r.dataset.profileExport=`keys`,r.append(l(`div`,`wcpx__title`,o)),e.providers.length>0){r.append(l(`div`,`wcpx__muted`,`Providers to set up again:`));let n=l(`div`,`wcpx__chips`);for(let r of e.providers){let e=l(`span`,`wcpx__chip`,t(r));e.title=r,n.append(e)}r.append(n)}else r.append(l(`div`,`wcpx__muted`,`No provider accounts are set up here.`));if(n.append(r),e.flagged.length>0){let t=l(`div`,`wcpx__box wcpx__box--warn`);t.dataset.profileExport=`flagged`,t.setAttribute(`role`,`alert`),t.append(l(`div`,`wcpx__title`,`The zip holds ${d(e.flagged.length,`credential-like file`)} in the clear. Anyone with the zip can read them.`));let r=l(`ul`,`wcpx__files`);for(let t of e.flagged){let e=l(`li`,`wcpx__file`);e.append(l(`span`,`wcpx__path`,t.sourcePath),l(`span`,`wcpx__why`,`${u(t.size)}, ${i[t.rule]}`)),r.append(e)}t.append(r,l(`div`,`wcpx__muted`,`Delete or move them in SLICC 7 if you don't need them there.`)),n.append(t)}let a=p(e);return a&&n.append(l(`div`,`wcpx__muted`,a)),n}function S(e={}){c(document);let t=e.plan??v,r=e.save??g,i=new AbortController,a=document.createElement(`slicc-dialog`);a.classList.add(`wcpx-dialog`),a.setAttribute(`heading`,`Export for SLICC 7`);let o=l(`div`,`wcpx`),s=l(`p`,`wcpx__lead`);s.append(`SLICC 7 is at `);let u=document.createElement(`a`);u.href=n,u.target=`_blank`,u.rel=`noopener`,u.textContent=`seven.sliccy.ai`,s.append(u,`. This saves your cones, chats, files, memory, skills and licks as a zip you import there.`);let d=l(`div`,``),f=l(`div`,`wcpx__status`,`Reading your profile…`);f.setAttribute(`aria-live`,`polite`),o.append(s,d,f),a.append(o);let p=l(`button`,`wcpx__btn`,`Cancel`);p.type=`button`,p.slot=`footer`,p.dataset.profileExportAction=`cancel`;let m=l(`button`,`wcpx__btn wcpx__btn--primary`,`Export`);m.type=`button`,m.slot=`footer`,m.disabled=!0,m.dataset.profileExportAction=`export`,a.append(p,m);let h=(e,t=!1)=>{f.textContent=e,f.toggleAttribute(`data-error`,t)},y=null,S=null,C=!1;return p.addEventListener(`click`,()=>a.hide?.()),m.addEventListener(`click`,()=>{if(C){a.hide?.();return}if(!y)return;let e=y;m.disabled=!0,r(e,{signal:i.signal,onArchive:(t,n)=>h(e.archives.length>1?`Saving ${n.filename} (${t+1} of ${e.archives.length})…`:`Saving ${n.filename}…`)}).then(()=>{C=!0,S=e,h(`Saved to Downloads: ${e.summary.archives.join(`, `)}. Open seven.sliccy.ai and import it in the Freezer.`),m.textContent=`Done`,m.disabled=!1,p.hidden=!0}).catch(e=>{h(`Export failed: ${b(e)}`,!0),m.disabled=!1})}),new Promise(n=>{a.addEventListener(`slicc-dialog-close`,()=>{i.abort(),a.remove(),n(S)}),document.body.append(a),a.show?.(),Promise.all([t(i.signal),(e.providerNames??_)()]).then(([e,t])=>{y=e,d.replaceWith(x(e.summary,t)),h(``),m.textContent=e.archives.length>1?`Export ${e.archives.length} zips`:`Export`,m.disabled=!1}).catch(e=>{i.signal.aborted||h(`Export failed: ${b(e)}`,!0)})})}export{y as runProfileExportHeadless,S as showProfileExportDialog};
@@ -1 +1 @@
1
- import{t as e}from"./logger-dqckiMJt.js";import{et as t,k as n}from"./account-store-CEqw_XTp.js";import{r}from"./secret-topology-BuXN_6_0.js";import{M as i}from"./wc-shell-DUnQ3yem.js";import{setSecretRequestSurface as a}from"./secret-request-registry-DrOMKR1H.js";import{createDefaultSecretBackend as o}from"./secret-backends-BVrvI2vY.js";var s=e(`wc-secret-request`);function c(e){try{return i(e,document),!0}catch(e){return s.error("no trusted layer in this float — refusing to collect a secret on spoofable chrome; use `secret set` or the settings UI instead (see trusted-layer.ts)",{error:e instanceof Error?e.message:String(e)}),!1}}function l(){try{return t(n())}catch{return}}function u(e){return{name:e.name,domains:e.domains,reason:e.reason,requester:e.requester,persist:e.persist,provider:e.provider??l()}}async function d(e={},t={}){let n=t.backend??o(r()),i=t.createDialog?.()??document.createElement(`slicc-secret-dialog`);if(t.mount)t.mount(i);else if(!c(i))return{stored:!1,reason:`unavailable`};let a={};i.submitHandler=async e=>{try{e.persist?await n.setPersisted(e.name,e.value,e.domains):await n.setSession(e.name,e.value,e.domains)}catch(e){return e instanceof Error?e.message:String(e)}return a.entry={name:e.name,domains:e.domains,persisted:e.persist},null};try{let t=await i.open(u(e)),r=a.entry;return!t||!r?{stored:!1,reason:`cancelled`}:{stored:!0,name:r.name,maskedValue:await f(n,r.name),domains:r.domains,persisted:r.persisted}}finally{i.remove()}}async function f(e,t){try{return(await e.getMasked(t))?.maskedValue??null}catch(e){return s.warn(`secret stored, but the mask could not be read back`,{name:t,error:e instanceof Error?e.message:String(e)}),null}}function p(e={}){return a(t=>d(t,e)),()=>a(null)}export{p as installSecretRequestSurface,d as requestSecretFromUser};
1
+ import{t as e}from"./logger-dqckiMJt.js";import{et as t,k as n}from"./account-store-CbKQrU_A.js";import{r}from"./secret-topology-BuXN_6_0.js";import{M as i}from"./wc-shell-Dviry0M3.js";import{setSecretRequestSurface as a}from"./secret-request-registry-DrOMKR1H.js";import{createDefaultSecretBackend as o}from"./secret-backends-BVrvI2vY.js";var s=e(`wc-secret-request`);function c(e){try{return i(e,document),!0}catch(e){return s.error("no trusted layer in this float — refusing to collect a secret on spoofable chrome; use `secret set` or the settings UI instead (see trusted-layer.ts)",{error:e instanceof Error?e.message:String(e)}),!1}}function l(){try{return t(n())}catch{return}}function u(e){return{name:e.name,domains:e.domains,reason:e.reason,requester:e.requester,persist:e.persist,provider:e.provider??l()}}async function d(e={},t={}){let n=t.backend??o(r()),i=t.createDialog?.()??document.createElement(`slicc-secret-dialog`);if(t.mount)t.mount(i);else if(!c(i))return{stored:!1,reason:`unavailable`};let a={};i.submitHandler=async e=>{try{e.persist?await n.setPersisted(e.name,e.value,e.domains):await n.setSession(e.name,e.value,e.domains)}catch(e){return e instanceof Error?e.message:String(e)}return a.entry={name:e.name,domains:e.domains,persisted:e.persist},null};try{let t=await i.open(u(e)),r=a.entry;return!t||!r?{stored:!1,reason:`cancelled`}:{stored:!0,name:r.name,maskedValue:await f(n,r.name),domains:r.domains,persisted:r.persisted}}finally{i.remove()}}async function f(e,t){try{return(await e.getMasked(t))?.maskedValue??null}catch(e){return s.warn(`secret stored, but the mask could not be read back`,{name:t,error:e instanceof Error?e.message:String(e)}),null}}function p(e={}){return a(t=>d(t,e)),()=>a(null)}export{p as installSecretRequestSurface,d as requestSecretFromUser};
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/oauth-service-DBNa_4eS.js","assets/preload-helper-BLdHbfdN.js","assets/proxied-fetch-2sdz8vNB.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/base64-ELzoYfwP.js","assets/api-endpoint-CNqFa-M3.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/permissions-surface-registry-CilCRwhh.js","assets/wc-profile-export-K9m6pZBL.js","assets/wc-live-mNieNNOh.js","assets/logger-dqckiMJt.js","assets/core-BXRpM6QF.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/feature-flags-DDJdMcuw.js","assets/secret-topology-BuXN_6_0.js","assets/secrets-bridge-client-BD4AHTxg.js","assets/image-markers-4eaAm9QS.js","assets/dictation-priming-BHJC0hch.js","assets/sprinkle-renderer-C9fr3WHR.js","assets/wc-shell-DUnQ3yem.js","assets/mime-types-D0xZwlMO.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-CEqw_XTp.js","assets/stored-accounts-CdMZdZUa.js","assets/providers-DUsi8UJy.js","assets/renamed-providers-d0bAaa0l.js","assets/bedrock-camp-compat-D6dUCn_T.js","assets/bedrock-camp-extra-models-COVvjLB5.js","assets/claude-model-version-3MWQoaco.js","assets/sha256-DynDhwRL.js","assets/telemetry-kqkj0A7x.js","assets/GELATIERE-CLK_MA5a.js","assets/types-D8gIX-W-.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-Bn0sfTur.js","assets/message-envelope-BPSSjJbW.js","assets/agent-message-to-chat-BiZHDYFR.js","assets/wc-shell-WkeczD9x.css","assets/hid-device-registry-B2R-0rNt.js","assets/serial-port-registry-CCqklAEr.js","assets/hid-operations-C97SZtrY.js","assets/usb-device-registry--JwKRTYp.js","assets/usb-operations-Dx9QXlZ0.js","assets/shared-DSEuryGJ.js","assets/theme-CmogKzdP.js","assets/theme-engine-CwaY1aIr.js","assets/zip-stream-DZF8sKOl.js","assets/transcript-export-DTRO8k03.js","assets/tray-follower-status-BAjnN7Ar.js","assets/main-CN0eXvpe.js","assets/clipboard-eqmn97SP.js","assets/provider-budget-LCzMPlKv.js","assets/browser-OXhgs9Cl.js","assets/tray-leader-WA8nmGPu.js","assets/db-CIXZItfi.js","assets/sessions-Bd6uu3F5.js","assets/types-CFfBWsH5.js","assets/store-DP4F8FwF.js","assets/entries-ChYQ3OMf.js","assets/frozen-archive-writer-d8c53vzV.js","assets/frozen-session-identity-D__hHRHh.js","assets/session-jsonl-CJO46TfW.js","assets/snapshot-store-DYh_oG7o.js","assets/live-session-curation-zfkDVdK3.js","assets/MEMORY-B9cGngY_.js","assets/thinking-level-DCJktR5U.js","assets/profile-export-deps-BE2w_fD3.js","assets/global-db-CbuLl-zx.js","assets/wc-unit-context-DDyqslj4.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-BLdHbfdN.js";import{a as t,c as n,l as r,o as i,r as a}from"./feature-flags-DDJdMcuw.js";import{G as o}from"./zip-stream-DZF8sKOl.js";import{X as s,Z as c}from"./wc-shell-DUnQ3yem.js";import{a as l,c as u,d,f,g as p,h as m,i as h,l as g,m as _,o as v,s as y,t as b,u as x,v as S,y as C}from"./theme-engine-CwaY1aIr.js";import{t as w}from"./theme-CmogKzdP.js";import{n as T,t as E}from"./discovery-preference-C2N6fnUl.js";var D={surfaces:[`--s2-gray-25`,`--s2-gray-50`,`--s2-gray-75`,`--s2-gray-100`,`--s2-gray-200`,`--s2-bg-base`,`--s2-bg-layer-1`,`--s2-bg-layer-2`,`--s2-bg-elevated`,`--s2-bg-sunken`],text:[`--s2-gray-800`,`--s2-gray-900`,`--s2-gray-1000`,`--s2-content-default`,`--s2-content-secondary`,`--s2-content-tertiary`,`--s2-content-disabled`],accents:[`--slicc-cone`,`--slicc-scoop-blue`,`--slicc-scoop-purple`,`--slicc-scoop-teal`,`--slicc-accent`,`--s2-accent`,`--s2-accent-hover`,`--s2-accent-down`],semantic:[`--s2-negative`,`--s2-positive`,`--s2-informative`,`--s2-notice`],chrome:[`--s2-border-default`,`--s2-border-subtle`,`--s2-border-focus`,`--s2-shadow-elevated`,`--s2-shadow-container`]},O=`slicc-wc-settings-style`,k=`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/oauth-service-DBNa_4eS.js","assets/preload-helper-BLdHbfdN.js","assets/proxied-fetch-2sdz8vNB.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/base64-ELzoYfwP.js","assets/api-endpoint-CNqFa-M3.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/permissions-surface-registry-CilCRwhh.js","assets/wc-profile-export-0_MWQlQi.js","assets/wc-live-jfkgv1D5.js","assets/logger-dqckiMJt.js","assets/core-BXRpM6QF.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/feature-flags-DDJdMcuw.js","assets/secret-topology-BuXN_6_0.js","assets/secrets-bridge-client-BD4AHTxg.js","assets/image-markers-4eaAm9QS.js","assets/dictation-priming-BHJC0hch.js","assets/sprinkle-renderer-DcsYmznT.js","assets/wc-shell-Dviry0M3.js","assets/mime-types-D0xZwlMO.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-CbKQrU_A.js","assets/stored-accounts-CdMZdZUa.js","assets/providers-s2pRjrQo.js","assets/renamed-providers-d0bAaa0l.js","assets/bedrock-camp-compat-D6dUCn_T.js","assets/bedrock-camp-extra-models-COVvjLB5.js","assets/claude-model-version-3MWQoaco.js","assets/sha256-DynDhwRL.js","assets/telemetry-kqkj0A7x.js","assets/GELATIERE-CLK_MA5a.js","assets/types-D8gIX-W-.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-Bn0sfTur.js","assets/message-envelope-BPSSjJbW.js","assets/agent-message-to-chat-BiZHDYFR.js","assets/wc-shell-WkeczD9x.css","assets/hid-device-registry-B2R-0rNt.js","assets/serial-port-registry-CCqklAEr.js","assets/hid-operations-C97SZtrY.js","assets/usb-device-registry--JwKRTYp.js","assets/usb-operations-Dx9QXlZ0.js","assets/shared-DSEuryGJ.js","assets/theme-CmogKzdP.js","assets/theme-engine-CwaY1aIr.js","assets/zip-stream-DZF8sKOl.js","assets/transcript-export-DTRO8k03.js","assets/tray-follower-status-BAjnN7Ar.js","assets/main-C8hdX5_E.js","assets/clipboard-eqmn97SP.js","assets/provider-budget-LCzMPlKv.js","assets/browser-OXhgs9Cl.js","assets/tray-leader-x0HDgpHa.js","assets/db-CIXZItfi.js","assets/sessions-Bd6uu3F5.js","assets/types-CFfBWsH5.js","assets/store-DP4F8FwF.js","assets/entries-ChYQ3OMf.js","assets/frozen-archive-writer-d8c53vzV.js","assets/frozen-session-identity-D__hHRHh.js","assets/session-jsonl-CJO46TfW.js","assets/snapshot-store-DYh_oG7o.js","assets/live-session-curation-BB61f9E8.js","assets/MEMORY-B9cGngY_.js","assets/thinking-level-DCJktR5U.js","assets/profile-export-deps-BE2w_fD3.js","assets/global-db-CbuLl-zx.js","assets/wc-unit-context-DDyqslj4.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-BLdHbfdN.js";import{a as t,c as n,l as r,o as i,r as a}from"./feature-flags-DDJdMcuw.js";import{G as o}from"./zip-stream-DZF8sKOl.js";import{X as s,Z as c}from"./wc-shell-Dviry0M3.js";import{a as l,c as u,d,f,g as p,h as m,i as h,l as g,m as _,o as v,s as y,t as b,u as x,v as S,y as C}from"./theme-engine-CwaY1aIr.js";import{t as w}from"./theme-CmogKzdP.js";import{n as T,t as E}from"./discovery-preference-C2N6fnUl.js";var D={surfaces:[`--s2-gray-25`,`--s2-gray-50`,`--s2-gray-75`,`--s2-gray-100`,`--s2-gray-200`,`--s2-bg-base`,`--s2-bg-layer-1`,`--s2-bg-layer-2`,`--s2-bg-elevated`,`--s2-bg-sunken`],text:[`--s2-gray-800`,`--s2-gray-900`,`--s2-gray-1000`,`--s2-content-default`,`--s2-content-secondary`,`--s2-content-tertiary`,`--s2-content-disabled`],accents:[`--slicc-cone`,`--slicc-scoop-blue`,`--slicc-scoop-purple`,`--slicc-scoop-teal`,`--slicc-accent`,`--s2-accent`,`--s2-accent-hover`,`--s2-accent-down`],semantic:[`--s2-negative`,`--s2-positive`,`--s2-informative`,`--s2-notice`],chrome:[`--s2-border-default`,`--s2-border-subtle`,`--s2-border-focus`,`--s2-shadow-elevated`,`--s2-shadow-container`]},O=`slicc-wc-settings-style`,k=`
3
3
  /* Width is owned by the dialog card (via ::part) — a min-width on the body
4
4
  used to overflow the card's content box and clip the row borders. */
5
5
  slicc-dialog.wcset-dialog::part(dialog){width:min(520px,92vw);}
@@ -60,4 +60,4 @@ slicc-dialog.wcset-dialog::part(dialog){width:min(520px,92vw);}
60
60
  .wcset__radio-row__detail{font-size:11px;color:var(--txt-3);margin-top:2px;line-height:1.4;}
61
61
  .wcset__notice{font-size:11.5px;line-height:1.45;color:var(--ink);background:var(--ghost);border:1px solid var(--line);border-left:3px solid var(--ctx);border-radius:8px;padding:8px 10px;}
62
62
  .wcset__notice[hidden]{display:none;}
63
- `;function A(e){if(e.getElementById(O))return;let t=e.createElement(`style`);t.id=O,t.textContent=k,e.head.appendChild(t)}function j(e,t){let n=document.createElement(`div`);return n.className=e,t!==void 0&&(n.textContent=t),n}function M(e,t,n){let r=document.createElement(`button`);return r.type=`button`,r.className=e,r.textContent=t,r.addEventListener(`click`,n),r}function N(e){return e?e.length<=8?`••••`:`${e.slice(0,4)}…${e.slice(-4)}`:``}function P(e){let t;return t=e.loggedOut?e.userName?`Logged out — was ${e.userName}`:`Logged out`:e.userName?e.userName:e.accessToken?`Logged in`:N(e.apiKey),e.baseUrl?`${t} • ${e.baseUrl}`:t}async function F(t,n,r){let{ps:i,log:a,setStatus:o,renderList:s}=r,c=i.getProviderConfig(t),l=i.getAccounts().some(e=>e.providerId===t);if(c.requiresBaseUrl){if(!n.trim()&&!i.getBaseUrlForProvider(t)){o(`Base URL is required.`,!0);return}n.trim()&&i.addAccount(t,``,n.trim())}o(`Opening login window…`);let u=()=>{o(``),s()};try{if(c.onOAuthLoginIntercepted){let{createInterceptingOAuthLauncherForCurrentRuntime:t}=await e(async()=>{let{createInterceptingOAuthLauncherForCurrentRuntime:e}=await import(`./oauth-service-DBNa_4eS.js`);return{createInterceptingOAuthLauncherForCurrentRuntime:e}},__vite__mapDeps([0,1,2,3,4,5,6,7])),n=await t();if(!n)throw Error(`No controlled-browser CDP transport available — open SLICC in standalone mode or the Chrome extension.`);await c.onOAuthLoginIntercepted(n,u)}else if(c.onOAuthLogin){let{createOAuthLauncher:t}=await e(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-DBNa_4eS.js`);return{createOAuthLauncher:e}},__vite__mapDeps([0,1,2,3,4,5,6,7]));await c.onOAuthLogin(t(),u)}else throw Error(`${c.name} does not support interactive login.`)}catch(e){l||await i.removeAccount(t).catch(()=>void 0),a.error(`WC settings OAuth login failed`,{providerId:t,err:e}),o(`Login failed: ${e instanceof Error?e.message:String(e)}`,!0)}}function I(e,t,n){let{ps:r,log:i,setStatus:a,renderList:o}=n,s=j(`wcset__row`),c=j(`wcset__info`);if(c.append(j(`wcset__name`,t.name),j(`wcset__detail`,P(e))),s.append(c),t.isOAuth){let t=e.loggedOut===!0;s.append(M(`wcset__btn`,t?`Log in`:`Log out`,()=>{t?F(e.providerId,``,n):r.logoutOAuthAccount(e.providerId).then(o).catch(t=>{i.error(`WC settings logout failed`,{providerId:e.providerId,err:t}),a(`Logout failed.`,!0)})}))}return s.append(M(`wcset__btn wcset__btn--danger`,`Remove`,()=>{r.removeAccount(e.providerId).then(o).catch(t=>{i.error(`WC settings remove failed`,{providerId:e.providerId,err:t}),a(`Remove failed.`,!0)})})),s}function L(e){let{ps:t,setStatus:n}=e,r=j(`wcset__add`);r.append(j(`wcset__label`,`Add account`));let i=document.createElement(`select`);i.className=`wcset__select`;let a=document.createElement(`option`);a.value=``,a.textContent=`Choose a provider…`,i.append(a);let o=new Set(t.getAccounts().map(e=>e.providerId)),s=t.getAvailableProviders().filter(e=>!o.has(e)&&t.providerOffersLlmModels(e)).sort((e,n)=>t.getProviderConfig(e).name.localeCompare(t.getProviderConfig(n).name));for(let e of s){let n=document.createElement(`option`);n.value=e,n.textContent=t.getProviderConfig(e).name,i.append(n)}r.append(i);let c=j(`wcset__controls`);return c.style.cssText=`display:flex;flex-direction:column;gap:8px;`,r.append(c),i.addEventListener(`change`,()=>{c.replaceChildren(),n(``);let r=i.value;if(!r)return;let a=t.getProviderConfig(r),o=document.createElement(`input`);if(o.className=`wcset__input`,o.placeholder=a.baseUrlPlaceholder??`Base URL`,o.value=t.getBaseUrlForProvider(r)??``,a.requiresBaseUrl&&c.append(o),a.isOAuth){c.append(M(`wcset__btn wcset__btn--primary`,`Login with ${a.name}`,()=>{F(r,o.value,e)}));return}let s=document.createElement(`input`);s.className=`wcset__input`,s.placeholder=a.deploymentPlaceholder??`Model IDs (comma-separated)`,s.value=t.getDeploymentForProvider(r)??``,a.requiresDeployment&&c.append(s);let l=document.createElement(`input`);l.className=`wcset__input`,l.type=`password`,l.placeholder=a.apiKeyPlaceholder??`API key`,l.setAttribute(`data-testid`,`wcset-api-key`),(a.requiresApiKey||a.optionalApiKey)&&c.append(l),c.append(M(`wcset__btn wcset__btn--primary`,`Save`,()=>{let i=l.value.trim();if(a.requiresApiKey&&!i){n(`An API key is required.`,!0),l.focus();return}if(a.requiresBaseUrl&&!o.value.trim()){n(`Base URL is required.`,!0),o.focus();return}if(a.requiresDeployment&&!s.value.trim()){n(`Model IDs are required.`,!0),s.focus();return}t.addAccount(r,i,o.value.trim()||void 0,s.value.trim()||void 0),l.value=``,n(`${a.name} connected.`),e.renderList()}))}),r}function R(t,n){let r=j(`wcset__add`);r.dataset.settingsSection=`slicc-7`,r.append(j(`wcset__section-label`,`SLICC 7`)),r.append(j(`wcset__pair-hint`,`SLICC 7 is at seven.sliccy.ai. Export your cones, chats, files, memory and skills to import them there.`));let i=M(`wcset__btn`,`Export for SLICC 7…`,()=>{n(),e(async()=>{let{showProfileExportDialog:e}=await import(`./wc-profile-export-K9m6pZBL.js`);return{showProfileExportDialog:e}},__vite__mapDeps([8,1,9,3,10,11,12,13,14,2,4,5,15,16,6,17,18,19,7,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,61,62,63,64,65,66,67,68,69])).then(({showProfileExportDialog:e})=>e()).catch(e=>t.error(`Export for SLICC 7 dialog failed`,e))});return i.dataset.settingsAction=`export-profile`,i.style.alignSelf=`flex-start`,r.append(i),r}function z(){let e=j(`wcset__add`);e.append(j(`wcset__section-label`,`Chat`));let t=j(`wcset__toggle-row`),n=document.createElement(`label`);n.textContent=`Show timestamps`;let r=document.createElement(`input`);return r.type=`checkbox`,r.checked=s(),r.addEventListener(`change`,()=>c(r.checked)),t.append(n,r),e.append(t),e}function B(){let e=j(`wcset__add`);e.append(j(`wcset__section-label`,`Browsing`));let t=j(`wcset__toggle-row`),n=document.createElement(`label`);n.textContent=`Autodiscover agentic resources`;let r=document.createElement(`input`);return r.type=`checkbox`,r.checked=E(),r.addEventListener(`change`,()=>T(r.checked)),t.append(n,r),e.append(t),e}function V(e,t,n){let r=j(`wcset__add`);r.append(j(`wcset__section-label`,`Keyboard mode`));let i=j(`wcset__radio-list`),a=[{value:`auto`,title:`Auto`,detail:`On whenever you are not typing — click outside the composer to command.`},{value:`esc`,title:`Esc`,detail:`Press Esc to enter. Blurring the composer does not turn it on.`},{value:null,title:`Off`,detail:`Keyboard mode disabled. Shortcuts stay unavailable until you pick Auto or Esc.`}],o=e.getTrigger();for(let r of a){let a=document.createElement(`label`);a.className=`wcset__radio-row`;let s=document.createElement(`input`);s.type=`radio`,s.name=`wcset-keyboard-trigger`,s.value=r.value===null?`off`:r.value,s.checked=o===r.value,s.addEventListener(`change`,()=>{if(!s.checked)return;let i=r.value;e.setTrigger(i),t(`Saved.`),e.persistTrigger?.(i).catch(e=>{n.error(`Could not persist keyboard trigger`,e),t(`Applied for this session; could not write /etc/slicc/keys.json.`,!0)})});let c=j(`wcset__radio-row__body`);c.append(j(`wcset__radio-row__title`,r.title),j(`wcset__radio-row__detail`,r.detail)),a.append(s,c),i.append(a)}return r.append(i),r}function H(e){let o=j(`wcset__list`),s=i().filter(e=>e.userToggleable);s.length===0&&o.append(j(`wcset__empty`,`No experimental features are available right now.`));let c=new Map(s.map(e=>[e.id,t(e.id)])),l=n(),u=new Map,d=new Map,f=()=>{e.onPendingChange([...d].some(([e,t])=>t!==c.get(e)))};for(let n of s){let r=j(`wcset__toggle-row`),i=j(`wcset__info`),s=document.createElement(`label`),l=document.createElement(`input`);l.id=`wcset-feature-${n.id}`,l.type=`checkbox`,l.checked=t(n.id),s.htmlFor=l.id,s.textContent=n.label,i.append(s,j(`wcset__detail`,n.description)),l.addEventListener(`change`,()=>{if(!a(n.id)){l.checked=c.get(n.id)??!1,e.setStatus(`This feature cannot be changed on this runtime.`,!0);return}d.set(n.id,l.checked),e.setStatus(l.checked===c.get(n.id)?`Back to the current setting.`:`Not applied yet — reload to apply.`),f()}),u.set(n.id,l),r.append(i,l),o.append(r)}return{element:o,revert:()=>{d.clear();for(let[e,t]of u)t.checked=c.get(e)??!1;f()},commit:()=>{for(let[t,n]of d)try{n===c.get(t)?r(t,l[t]):r(t,n?`on`:`off`)}catch(n){e.log.error(`Experimental settings update failed`,{flagId:t,err:n})}}}}function U(e,t,n){return`wcset__preset-swatch${t.includes(e)?` wcset__preset-swatch--active`:``}${n===e?` wcset__preset-swatch--live`:``}`}function W(e){let t=f(e);return t===`darker`?`Selected. Used when Dark is on.`:t===`brighter`?`Selected. Used when Light is on.`:`Select. Two themes follow Light and Dark automatically.`}function G(e){let t=j(`wcset__appearance`);t.append(j(`wcset__section-label`,`Appearance`));let n=x(),r=u(),i=j(`wcset__preset-grid`),a=document.createElement(`div`);a.className=`wcset__preset-swatch${n.length===0?` wcset__preset-swatch--active`:``}`,a.title=`Follow the system colors, with no theme.`,a.innerHTML=[`#161618`,`#1f1f22`,`#f59e0b`].map(e=>`<div class="wcset__preset-swatch__stripe" style="background:${e}"></div>`).join(``)+`<div class="wcset__preset-name">Default</div>`,a.addEventListener(`click`,()=>{h(),w(),f()}),i.append(a);for(let e of C){let t=document.createElement(`div`);t.className=U(e.id,n,r),t.title=W(e.id),t.innerHTML=`<div class="wcset__preset-swatch__stripe" style="background:${e.tokens[`--s2-gray-25`]||`#1a1a1a`}"></div><div class="wcset__preset-swatch__stripe" style="background:${e.tokens[`--s2-gray-100`]||`#2c2c2c`}"></div><div class="wcset__preset-swatch__stripe" style="background:${e.tokens[`--s2-accent`]||`#3562ff`}"></div><div class="wcset__preset-name">${e.name}</div>`,t.addEventListener(`click`,()=>{S(e.id),w(),f()}),i.append(t)}t.append(i),t.append(j(`wcset__pair-hint`,`Select two themes to switch between the darker and the brighter one as Light and Dark change. A third pick replaces the older one.`));let o=g().filter(e=>e.id!==`__preview`);if(o.length>0){let e=j(`wcset__custom-themes`);e.append(j(`wcset__section-label`,`My Themes`));for(let t of o){let r=j(`wcset__custom-row`),i=j(`wcset__custom-row__name`,t.name);n.includes(t.id)&&(i.style.fontWeight=`700`),r.append(i),r.append(M(`wcset__btn`,n.includes(t.id)?`Selected`:`Use`,()=>{S(t.id),w(),f()})),r.append(M(`wcset__btn`,`Edit`,()=>{p(t)})),r.append(M(`wcset__btn`,`Export`,()=>{let e=new Blob([y(t)],{type:`application/json`}),n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=`${t.name.toLowerCase().replace(/\s+/g,`-`)}.slicc-theme.json`,r.click(),URL.revokeObjectURL(n)})),r.append(M(`wcset__btn wcset__btn--danger`,`×`,()=>{l(t.id),w(),f()})),e.append(r)}t.append(e)}let s=j(``);s.style.cssText=`display:flex;gap:8px;`,s.append(M(`wcset__btn wcset__btn--primary`,`+ Create Custom Theme`,()=>{p(null)})),s.append(M(`wcset__btn`,`Import Theme…`,()=>{let t=document.createElement(`input`);t.type=`file`,t.accept=`.json`,t.addEventListener(`change`,()=>{let n=t.files?.[0];n&&n.text().then(t=>{try{let n=d(t);_(n),e.setStatus(`Imported "${n.name}".`),f()}catch(t){e.setStatus(`Import failed: ${t instanceof Error?t.message:String(t)}`,!0)}})}),t.click()})),t.append(s);let c=j(``);t.append(c);function f(){let n=t.parentElement;if(!n)return;let r=G(e);n.replaceChild(r,t)}function p(t){c.replaceChildren(Q(t,e,f))}return t}function K(e,t,n,r){let i=[],a=v(e,t);for(let[e,t]of Object.entries(D)){i.push(j(`wcset__section-label`,e));let o=j(`wcset__advanced-grid`);for(let e of t){let t=j(`wcset__advanced-token`),i=document.createElement(`input`);i.type=`color`;let s=n[e]||a[e]||`#000000`;i.value=s.startsWith(`#`)?s:`#000000`,i.addEventListener(`input`,()=>{n[e]=i.value,r()});let c=document.createElement(`span`);c.textContent=e.replace(`--s2-`,``).replace(`--slicc-`,``),t.append(i,c),o.append(t)}i.push(o)}return i}function q(e,t,n,r,i){let a=[];for(let[r,o]of[[`background`,`Background`],[`text`,`Text`],[`accent`,`Links & buttons`]]){let s=j(`wcset__builder-row`),c=document.createElement(`label`);c.textContent=o;let l=document.createElement(`input`);l.type=`color`,l.value=e[r],l.addEventListener(`input`,()=>{e[r]=l.value,i()});let u=document.createElement(`input`);if(u.type=`range`,u.min=`0`,u.max=`100`,u.value=String(Math.round((t[r]??1)*100)),u.style.cssText=`width:60px;margin-left:6px;`,u.title=`Opacity`,u.addEventListener(`input`,()=>{t[r]=Number(u.value)/100,i()}),s.append(c,l,u),r===`background`){let e=document.createElement(`input`);e.type=`checkbox`,e.checked=n.disabled,e.style.cssText=`width:auto;margin:0 0 0 8px;`,e.title=`Hide animated background`,e.addEventListener(`change`,()=>{n.disabled=e.checked,i()});let t=document.createElement(`span`);t.textContent=`Static`,t.style.cssText=`font-size:10px;color:var(--txt-3);`,s.append(e,t)}a.push(s)}a.push(j(`wcset__section-label`,`Components`));for(let[e,t]of[[`bubbleBg`,`User bubble bg`],[`bubbleText`,`User bubble text`],[`navBg`,`Nav bar`],[`composerBg`,`Input box`]]){let n=j(`wcset__builder-row`),o=document.createElement(`label`);o.textContent=t;let s=document.createElement(`input`);s.type=`color`,s.value=r[e]||`#000000`,s.addEventListener(`input`,()=>{r[e]=s.value,i()}),n.append(o,s),a.push(n)}return a}function J(e,t){let n=j(`wcset__builder-row`),r=document.createElement(`label`);r.textContent=`Base`;let i=j(`wcset__base-toggle`);for(let n of[`dark`,`light`]){let r=document.createElement(`button`);r.textContent=n.charAt(0).toUpperCase()+n.slice(1),r.className=e===n?`active`:``,r.addEventListener(`click`,()=>t(n)),i.append(r)}return n.append(r,i),n}function Y(e,t){let n=j(``);return n.style.cssText=`display:flex;gap:8px;margin-top:8px;`,n.append(M(`wcset__btn wcset__btn--primary`,`Save`,e)),n.append(M(`wcset__btn`,`Cancel`,t)),n}function X(e){return{userBubble:{background:e.bubbleBg,text:e.bubbleText},nav:{background:e.navBg},composer:{background:e.composerBg}}}function Z(e,t){let n=t===`dark`;return{bubbleBg:e?.components?.userBubble?.background||(n?`#f5f5f2`:`#0a0a0a`),bubbleText:e?.components?.userBubble?.text||(n?`#0a0a0a`:`#ffffff`),navBg:e?.components?.nav?.background||(n?`#161618`:`#ffffff`),composerBg:e?.components?.composer?.background||(n?`#161618`:`#ffffff`)}}function Q(e,t,n){let r=j(`wcset__builder`),i=e?.base??`dark`,a=e?.disableShader??!1,s=!1,c={background:e?.tokens[`--s2-gray-25`]||(i===`dark`?`#1a1a1a`:`#ffffff`),surface:``,text:e?.tokens[`--s2-content-default`]||e?.tokens[`--s2-gray-900`]||(i===`dark`?`#e8e8e8`:`#131313`),accent:e?.tokens[`--s2-accent`]||`#3562ff`,border:``,success:`#2d9d78`,error:`#e34850`},u={background:1,text:1,accent:1},d=Z(e,i),f={},p=document.createElement(`input`);p.className=`wcset__input`,p.placeholder=`Theme name`,p.value=e?.name??``;function g(){return o(p.value)||`custom-${Date.now()}`}function y(){let e=i===`dark`;c.surface=b(c.background,e?.1:-.08),c.border=b(c.background,e?.15:-.12),c.success=`#2d9d78`,c.error=`#e34850`}function x(){y();let e={...v(c,i),...f};for(let[t,n]of Object.entries(u))if(n<1&&c[t]){let r=c[t],i=Math.round(n*255).toString(16).padStart(2,`0`);for(let n of{background:[`--canvas`,`--s2-gray-25`,`--s2-bg-base`,`--shaderbg`],text:[`--ink`,`--s2-content-default`,`--s2-gray-900`],accent:[`--ctx`,`--waffle`,`--s2-accent`]}[t]||[])e[n]&&(e[n]=`${r}${i}`)}let t={id:`__preview`,name:`Preview`,base:i,tokens:e,disableShader:a,components:X(d)};_(t),m(`__preview`),w()}function S(){r.replaceChildren();let o=j(`wcset__builder-row`),b=document.createElement(`label`);b.textContent=`Name`,o.append(b,p),r.append(o),r.append(J(i,e=>{i=e,S(),x()}));let C={disabled:a};for(let e of q(c,u,C,d,()=>{a=C.disabled,x()}))r.append(e);let T=document.createElement(`button`);if(T.className=`wcset__advanced-toggle`,T.textContent=s?`Hide advanced`:`Show advanced`,T.addEventListener(`click`,()=>{s=!s,S()}),r.append(T),s)for(let e of K(c,i,f,x))r.append(e);r.append(Y(()=>{let r=p.value.trim();if(!r){t.setStatus(`Name is required.`,!0);return}y();let o={...v(c,i),...f},s=e?.id??g(),u={id:s,name:r,base:i,tokens:o,disableShader:a,components:X(d)};l(`__preview`),_(u),m(s),w(),t.setStatus(`Saved "${r}".`),n()},()=>{l(`__preview`),e?m(e.id):h(),w(),n()}))}return S(),x(),r}async function ee(t){let n=await e(()=>import(`./main-CN0eXvpe.js`).then(e=>e.t),__vite__mapDeps([50,3,10,11,1,12,13,14,2,4,5,15,16,6,17,22,24,23,25,26,27,28,29,31,49,51]));A(document);let r=JSON.stringify(n.getAccounts());return new Promise(e=>{let i=document.createElement(`slicc-dialog`);i.classList.add(`wcset-dialog`),i.setAttribute(`heading`,`Accounts`);let a=j(`wcset`),o=j(`wcset__list`),s=j(`wcset__status`),c=(e,t=!1)=>{s.textContent=e,s.toggleAttribute(`data-error`,t)},l=r,u=()=>{let e=JSON.stringify(n.getAccounts());e!==l&&(l=e,window.dispatchEvent(new CustomEvent(`slicc:accounts-changed`)))},d=j(``),f={ps:n,log:t,setStatus:c,renderList:()=>{u(),o.replaceChildren();let e=n.getAccounts();if(e.length===0)o.append(j(`wcset__empty`,`No accounts configured.`));else for(let t of e)o.append(I(t,n.getProviderConfig(t.providerId),f));d.replaceChildren(L(f))}};f.renderList(),a.append(o,d,R(t,()=>{i.hide?.()}),s),i.append(a);let p=M(`wcset__btn wcset__btn--primary`,`Done`,()=>{i.hide?.()});p.setAttribute(`slot`,`footer`),i.append(p),i.addEventListener(`slicc-dialog-close`,()=>{i.remove(),e(JSON.stringify(n.getAccounts())!==r)}),document.body.append(i),i.show?.()})}async function te(e,t){return A(document),l(`__preview`),new Promise(n=>{let r=document.createElement(`slicc-dialog`);r.classList.add(`wcset-dialog`),r.setAttribute(`heading`,`Theme`);let i=j(`wcset`),a=j(`wcset__status`),o=(e,t=!1)=>{a.textContent=e,a.toggleAttribute(`data-error`,t)},s=G({ps:null,log:e,setStatus:o,renderList:()=>{}}),c=z(),d=B();i.append(s,c,d),t&&i.append(V(t,o,e)),i.append(a),r.append(i);let f=M(`wcset__btn wcset__btn--primary`,`Done`,()=>{r.hide?.()});f.setAttribute(`slot`,`footer`),r.append(f);let m=x().filter(e=>e!==`__preview`);r.addEventListener(`slicc-dialog-close`,()=>{u()===`__preview`&&(l(`__preview`),m.length>0?p(m):h(),w()),r.remove(),n()}),document.body.append(r),r.show?.()})}var $=`Done`,ne=`Reload now`,re=`Revert`,ie=`Experimental features take effect when SLICC boots. Nothing is saved until you reload — reload this tab to apply your changes, or revert.`;async function ae(e,n={}){if(!t(`experimental-settings`))return;A(document);let r=n.reload??(()=>location.reload());return new Promise(t=>{let n=document.createElement(`slicc-dialog`);n.classList.add(`wcset-dialog`),n.setAttribute(`heading`,`Experimental`);let i=j(`wcset`),a=j(`wcset__status`),o=(e,t=!1)=>{a.textContent=e,a.toggleAttribute(`data-error`,t)},s=j(`wcset__notice`,ie);s.hidden=!0;let c=()=>{n.hide?.()},l=M(`wcset__btn wcset__btn--primary`,$,()=>{d&&(f.commit(),r()),c()});l.setAttribute(`slot`,`footer`);let u=M(`wcset__btn`,re,()=>{f.revert(),o(`Reverted.`)});u.setAttribute(`slot`,`footer`),u.hidden=!0;let d=!1,f=H({log:e,setStatus:o,onPendingChange:e=>{d=e,s.hidden=!e,u.hidden=!e,l.textContent=e?ne:$}});i.append(f.element,s,a),n.append(i,u,l),n.addEventListener(`slicc-dialog-close`,()=>{n.remove(),t()}),document.body.append(n),n.show?.()})}export{ae as showExperimentalSettings,te as showThemeSettings,ee as showWcSettings};
63
+ `;function A(e){if(e.getElementById(O))return;let t=e.createElement(`style`);t.id=O,t.textContent=k,e.head.appendChild(t)}function j(e,t){let n=document.createElement(`div`);return n.className=e,t!==void 0&&(n.textContent=t),n}function M(e,t,n){let r=document.createElement(`button`);return r.type=`button`,r.className=e,r.textContent=t,r.addEventListener(`click`,n),r}function N(e){return e?e.length<=8?`••••`:`${e.slice(0,4)}…${e.slice(-4)}`:``}function P(e){let t;return t=e.loggedOut?e.userName?`Logged out — was ${e.userName}`:`Logged out`:e.userName?e.userName:e.accessToken?`Logged in`:N(e.apiKey),e.baseUrl?`${t} • ${e.baseUrl}`:t}async function F(t,n,r){let{ps:i,log:a,setStatus:o,renderList:s}=r,c=i.getProviderConfig(t),l=i.getAccounts().some(e=>e.providerId===t);if(c.requiresBaseUrl){if(!n.trim()&&!i.getBaseUrlForProvider(t)){o(`Base URL is required.`,!0);return}n.trim()&&i.addAccount(t,``,n.trim())}o(`Opening login window…`);let u=()=>{o(``),s()};try{if(c.onOAuthLoginIntercepted){let{createInterceptingOAuthLauncherForCurrentRuntime:t}=await e(async()=>{let{createInterceptingOAuthLauncherForCurrentRuntime:e}=await import(`./oauth-service-DBNa_4eS.js`);return{createInterceptingOAuthLauncherForCurrentRuntime:e}},__vite__mapDeps([0,1,2,3,4,5,6,7])),n=await t();if(!n)throw Error(`No controlled-browser CDP transport available — open SLICC in standalone mode or the Chrome extension.`);await c.onOAuthLoginIntercepted(n,u)}else if(c.onOAuthLogin){let{createOAuthLauncher:t}=await e(async()=>{let{createOAuthLauncher:e}=await import(`./oauth-service-DBNa_4eS.js`);return{createOAuthLauncher:e}},__vite__mapDeps([0,1,2,3,4,5,6,7]));await c.onOAuthLogin(t(),u)}else throw Error(`${c.name} does not support interactive login.`)}catch(e){l||await i.removeAccount(t).catch(()=>void 0),a.error(`WC settings OAuth login failed`,{providerId:t,err:e}),o(`Login failed: ${e instanceof Error?e.message:String(e)}`,!0)}}function I(e,t,n){let{ps:r,log:i,setStatus:a,renderList:o}=n,s=j(`wcset__row`),c=j(`wcset__info`);if(c.append(j(`wcset__name`,t.name),j(`wcset__detail`,P(e))),s.append(c),t.isOAuth){let t=e.loggedOut===!0;s.append(M(`wcset__btn`,t?`Log in`:`Log out`,()=>{t?F(e.providerId,``,n):r.logoutOAuthAccount(e.providerId).then(o).catch(t=>{i.error(`WC settings logout failed`,{providerId:e.providerId,err:t}),a(`Logout failed.`,!0)})}))}return s.append(M(`wcset__btn wcset__btn--danger`,`Remove`,()=>{r.removeAccount(e.providerId).then(o).catch(t=>{i.error(`WC settings remove failed`,{providerId:e.providerId,err:t}),a(`Remove failed.`,!0)})})),s}function L(e){let{ps:t,setStatus:n}=e,r=j(`wcset__add`);r.append(j(`wcset__label`,`Add account`));let i=document.createElement(`select`);i.className=`wcset__select`;let a=document.createElement(`option`);a.value=``,a.textContent=`Choose a provider…`,i.append(a);let o=new Set(t.getAccounts().map(e=>e.providerId)),s=t.getAvailableProviders().filter(e=>!o.has(e)&&t.providerOffersLlmModels(e)).sort((e,n)=>t.getProviderConfig(e).name.localeCompare(t.getProviderConfig(n).name));for(let e of s){let n=document.createElement(`option`);n.value=e,n.textContent=t.getProviderConfig(e).name,i.append(n)}r.append(i);let c=j(`wcset__controls`);return c.style.cssText=`display:flex;flex-direction:column;gap:8px;`,r.append(c),i.addEventListener(`change`,()=>{c.replaceChildren(),n(``);let r=i.value;if(!r)return;let a=t.getProviderConfig(r),o=document.createElement(`input`);if(o.className=`wcset__input`,o.placeholder=a.baseUrlPlaceholder??`Base URL`,o.value=t.getBaseUrlForProvider(r)??``,a.requiresBaseUrl&&c.append(o),a.isOAuth){c.append(M(`wcset__btn wcset__btn--primary`,`Login with ${a.name}`,()=>{F(r,o.value,e)}));return}let s=document.createElement(`input`);s.className=`wcset__input`,s.placeholder=a.deploymentPlaceholder??`Model IDs (comma-separated)`,s.value=t.getDeploymentForProvider(r)??``,a.requiresDeployment&&c.append(s);let l=document.createElement(`input`);l.className=`wcset__input`,l.type=`password`,l.placeholder=a.apiKeyPlaceholder??`API key`,l.setAttribute(`data-testid`,`wcset-api-key`),(a.requiresApiKey||a.optionalApiKey)&&c.append(l),c.append(M(`wcset__btn wcset__btn--primary`,`Save`,()=>{let i=l.value.trim();if(a.requiresApiKey&&!i){n(`An API key is required.`,!0),l.focus();return}if(a.requiresBaseUrl&&!o.value.trim()){n(`Base URL is required.`,!0),o.focus();return}if(a.requiresDeployment&&!s.value.trim()){n(`Model IDs are required.`,!0),s.focus();return}t.addAccount(r,i,o.value.trim()||void 0,s.value.trim()||void 0),l.value=``,n(`${a.name} connected.`),e.renderList()}))}),r}function R(t,n){let r=j(`wcset__add`);r.dataset.settingsSection=`slicc-7`,r.append(j(`wcset__section-label`,`SLICC 7`)),r.append(j(`wcset__pair-hint`,`SLICC 7 is at seven.sliccy.ai. Export your cones, chats, files, memory and skills to import them there.`));let i=M(`wcset__btn`,`Export for SLICC 7…`,()=>{n(),e(async()=>{let{showProfileExportDialog:e}=await import(`./wc-profile-export-0_MWQlQi.js`);return{showProfileExportDialog:e}},__vite__mapDeps([8,1,9,3,10,11,12,13,14,2,4,5,15,16,6,17,18,19,7,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,61,62,63,64,65,66,67,68,69])).then(({showProfileExportDialog:e})=>e()).catch(e=>t.error(`Export for SLICC 7 dialog failed`,e))});return i.dataset.settingsAction=`export-profile`,i.style.alignSelf=`flex-start`,r.append(i),r}function z(){let e=j(`wcset__add`);e.append(j(`wcset__section-label`,`Chat`));let t=j(`wcset__toggle-row`),n=document.createElement(`label`);n.textContent=`Show timestamps`;let r=document.createElement(`input`);return r.type=`checkbox`,r.checked=s(),r.addEventListener(`change`,()=>c(r.checked)),t.append(n,r),e.append(t),e}function B(){let e=j(`wcset__add`);e.append(j(`wcset__section-label`,`Browsing`));let t=j(`wcset__toggle-row`),n=document.createElement(`label`);n.textContent=`Autodiscover agentic resources`;let r=document.createElement(`input`);return r.type=`checkbox`,r.checked=E(),r.addEventListener(`change`,()=>T(r.checked)),t.append(n,r),e.append(t),e}function V(e,t,n){let r=j(`wcset__add`);r.append(j(`wcset__section-label`,`Keyboard mode`));let i=j(`wcset__radio-list`),a=[{value:`auto`,title:`Auto`,detail:`On whenever you are not typing — click outside the composer to command.`},{value:`esc`,title:`Esc`,detail:`Press Esc to enter. Blurring the composer does not turn it on.`},{value:null,title:`Off`,detail:`Keyboard mode disabled. Shortcuts stay unavailable until you pick Auto or Esc.`}],o=e.getTrigger();for(let r of a){let a=document.createElement(`label`);a.className=`wcset__radio-row`;let s=document.createElement(`input`);s.type=`radio`,s.name=`wcset-keyboard-trigger`,s.value=r.value===null?`off`:r.value,s.checked=o===r.value,s.addEventListener(`change`,()=>{if(!s.checked)return;let i=r.value;e.setTrigger(i),t(`Saved.`),e.persistTrigger?.(i).catch(e=>{n.error(`Could not persist keyboard trigger`,e),t(`Applied for this session; could not write /etc/slicc/keys.json.`,!0)})});let c=j(`wcset__radio-row__body`);c.append(j(`wcset__radio-row__title`,r.title),j(`wcset__radio-row__detail`,r.detail)),a.append(s,c),i.append(a)}return r.append(i),r}function H(e){let o=j(`wcset__list`),s=i().filter(e=>e.userToggleable);s.length===0&&o.append(j(`wcset__empty`,`No experimental features are available right now.`));let c=new Map(s.map(e=>[e.id,t(e.id)])),l=n(),u=new Map,d=new Map,f=()=>{e.onPendingChange([...d].some(([e,t])=>t!==c.get(e)))};for(let n of s){let r=j(`wcset__toggle-row`),i=j(`wcset__info`),s=document.createElement(`label`),l=document.createElement(`input`);l.id=`wcset-feature-${n.id}`,l.type=`checkbox`,l.checked=t(n.id),s.htmlFor=l.id,s.textContent=n.label,i.append(s,j(`wcset__detail`,n.description)),l.addEventListener(`change`,()=>{if(!a(n.id)){l.checked=c.get(n.id)??!1,e.setStatus(`This feature cannot be changed on this runtime.`,!0);return}d.set(n.id,l.checked),e.setStatus(l.checked===c.get(n.id)?`Back to the current setting.`:`Not applied yet — reload to apply.`),f()}),u.set(n.id,l),r.append(i,l),o.append(r)}return{element:o,revert:()=>{d.clear();for(let[e,t]of u)t.checked=c.get(e)??!1;f()},commit:()=>{for(let[t,n]of d)try{n===c.get(t)?r(t,l[t]):r(t,n?`on`:`off`)}catch(n){e.log.error(`Experimental settings update failed`,{flagId:t,err:n})}}}}function U(e,t,n){return`wcset__preset-swatch${t.includes(e)?` wcset__preset-swatch--active`:``}${n===e?` wcset__preset-swatch--live`:``}`}function W(e){let t=f(e);return t===`darker`?`Selected. Used when Dark is on.`:t===`brighter`?`Selected. Used when Light is on.`:`Select. Two themes follow Light and Dark automatically.`}function G(e){let t=j(`wcset__appearance`);t.append(j(`wcset__section-label`,`Appearance`));let n=x(),r=u(),i=j(`wcset__preset-grid`),a=document.createElement(`div`);a.className=`wcset__preset-swatch${n.length===0?` wcset__preset-swatch--active`:``}`,a.title=`Follow the system colors, with no theme.`,a.innerHTML=[`#161618`,`#1f1f22`,`#f59e0b`].map(e=>`<div class="wcset__preset-swatch__stripe" style="background:${e}"></div>`).join(``)+`<div class="wcset__preset-name">Default</div>`,a.addEventListener(`click`,()=>{h(),w(),f()}),i.append(a);for(let e of C){let t=document.createElement(`div`);t.className=U(e.id,n,r),t.title=W(e.id),t.innerHTML=`<div class="wcset__preset-swatch__stripe" style="background:${e.tokens[`--s2-gray-25`]||`#1a1a1a`}"></div><div class="wcset__preset-swatch__stripe" style="background:${e.tokens[`--s2-gray-100`]||`#2c2c2c`}"></div><div class="wcset__preset-swatch__stripe" style="background:${e.tokens[`--s2-accent`]||`#3562ff`}"></div><div class="wcset__preset-name">${e.name}</div>`,t.addEventListener(`click`,()=>{S(e.id),w(),f()}),i.append(t)}t.append(i),t.append(j(`wcset__pair-hint`,`Select two themes to switch between the darker and the brighter one as Light and Dark change. A third pick replaces the older one.`));let o=g().filter(e=>e.id!==`__preview`);if(o.length>0){let e=j(`wcset__custom-themes`);e.append(j(`wcset__section-label`,`My Themes`));for(let t of o){let r=j(`wcset__custom-row`),i=j(`wcset__custom-row__name`,t.name);n.includes(t.id)&&(i.style.fontWeight=`700`),r.append(i),r.append(M(`wcset__btn`,n.includes(t.id)?`Selected`:`Use`,()=>{S(t.id),w(),f()})),r.append(M(`wcset__btn`,`Edit`,()=>{p(t)})),r.append(M(`wcset__btn`,`Export`,()=>{let e=new Blob([y(t)],{type:`application/json`}),n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=`${t.name.toLowerCase().replace(/\s+/g,`-`)}.slicc-theme.json`,r.click(),URL.revokeObjectURL(n)})),r.append(M(`wcset__btn wcset__btn--danger`,`×`,()=>{l(t.id),w(),f()})),e.append(r)}t.append(e)}let s=j(``);s.style.cssText=`display:flex;gap:8px;`,s.append(M(`wcset__btn wcset__btn--primary`,`+ Create Custom Theme`,()=>{p(null)})),s.append(M(`wcset__btn`,`Import Theme…`,()=>{let t=document.createElement(`input`);t.type=`file`,t.accept=`.json`,t.addEventListener(`change`,()=>{let n=t.files?.[0];n&&n.text().then(t=>{try{let n=d(t);_(n),e.setStatus(`Imported "${n.name}".`),f()}catch(t){e.setStatus(`Import failed: ${t instanceof Error?t.message:String(t)}`,!0)}})}),t.click()})),t.append(s);let c=j(``);t.append(c);function f(){let n=t.parentElement;if(!n)return;let r=G(e);n.replaceChild(r,t)}function p(t){c.replaceChildren(Q(t,e,f))}return t}function K(e,t,n,r){let i=[],a=v(e,t);for(let[e,t]of Object.entries(D)){i.push(j(`wcset__section-label`,e));let o=j(`wcset__advanced-grid`);for(let e of t){let t=j(`wcset__advanced-token`),i=document.createElement(`input`);i.type=`color`;let s=n[e]||a[e]||`#000000`;i.value=s.startsWith(`#`)?s:`#000000`,i.addEventListener(`input`,()=>{n[e]=i.value,r()});let c=document.createElement(`span`);c.textContent=e.replace(`--s2-`,``).replace(`--slicc-`,``),t.append(i,c),o.append(t)}i.push(o)}return i}function q(e,t,n,r,i){let a=[];for(let[r,o]of[[`background`,`Background`],[`text`,`Text`],[`accent`,`Links & buttons`]]){let s=j(`wcset__builder-row`),c=document.createElement(`label`);c.textContent=o;let l=document.createElement(`input`);l.type=`color`,l.value=e[r],l.addEventListener(`input`,()=>{e[r]=l.value,i()});let u=document.createElement(`input`);if(u.type=`range`,u.min=`0`,u.max=`100`,u.value=String(Math.round((t[r]??1)*100)),u.style.cssText=`width:60px;margin-left:6px;`,u.title=`Opacity`,u.addEventListener(`input`,()=>{t[r]=Number(u.value)/100,i()}),s.append(c,l,u),r===`background`){let e=document.createElement(`input`);e.type=`checkbox`,e.checked=n.disabled,e.style.cssText=`width:auto;margin:0 0 0 8px;`,e.title=`Hide animated background`,e.addEventListener(`change`,()=>{n.disabled=e.checked,i()});let t=document.createElement(`span`);t.textContent=`Static`,t.style.cssText=`font-size:10px;color:var(--txt-3);`,s.append(e,t)}a.push(s)}a.push(j(`wcset__section-label`,`Components`));for(let[e,t]of[[`bubbleBg`,`User bubble bg`],[`bubbleText`,`User bubble text`],[`navBg`,`Nav bar`],[`composerBg`,`Input box`]]){let n=j(`wcset__builder-row`),o=document.createElement(`label`);o.textContent=t;let s=document.createElement(`input`);s.type=`color`,s.value=r[e]||`#000000`,s.addEventListener(`input`,()=>{r[e]=s.value,i()}),n.append(o,s),a.push(n)}return a}function J(e,t){let n=j(`wcset__builder-row`),r=document.createElement(`label`);r.textContent=`Base`;let i=j(`wcset__base-toggle`);for(let n of[`dark`,`light`]){let r=document.createElement(`button`);r.textContent=n.charAt(0).toUpperCase()+n.slice(1),r.className=e===n?`active`:``,r.addEventListener(`click`,()=>t(n)),i.append(r)}return n.append(r,i),n}function Y(e,t){let n=j(``);return n.style.cssText=`display:flex;gap:8px;margin-top:8px;`,n.append(M(`wcset__btn wcset__btn--primary`,`Save`,e)),n.append(M(`wcset__btn`,`Cancel`,t)),n}function X(e){return{userBubble:{background:e.bubbleBg,text:e.bubbleText},nav:{background:e.navBg},composer:{background:e.composerBg}}}function Z(e,t){let n=t===`dark`;return{bubbleBg:e?.components?.userBubble?.background||(n?`#f5f5f2`:`#0a0a0a`),bubbleText:e?.components?.userBubble?.text||(n?`#0a0a0a`:`#ffffff`),navBg:e?.components?.nav?.background||(n?`#161618`:`#ffffff`),composerBg:e?.components?.composer?.background||(n?`#161618`:`#ffffff`)}}function Q(e,t,n){let r=j(`wcset__builder`),i=e?.base??`dark`,a=e?.disableShader??!1,s=!1,c={background:e?.tokens[`--s2-gray-25`]||(i===`dark`?`#1a1a1a`:`#ffffff`),surface:``,text:e?.tokens[`--s2-content-default`]||e?.tokens[`--s2-gray-900`]||(i===`dark`?`#e8e8e8`:`#131313`),accent:e?.tokens[`--s2-accent`]||`#3562ff`,border:``,success:`#2d9d78`,error:`#e34850`},u={background:1,text:1,accent:1},d=Z(e,i),f={},p=document.createElement(`input`);p.className=`wcset__input`,p.placeholder=`Theme name`,p.value=e?.name??``;function g(){return o(p.value)||`custom-${Date.now()}`}function y(){let e=i===`dark`;c.surface=b(c.background,e?.1:-.08),c.border=b(c.background,e?.15:-.12),c.success=`#2d9d78`,c.error=`#e34850`}function x(){y();let e={...v(c,i),...f};for(let[t,n]of Object.entries(u))if(n<1&&c[t]){let r=c[t],i=Math.round(n*255).toString(16).padStart(2,`0`);for(let n of{background:[`--canvas`,`--s2-gray-25`,`--s2-bg-base`,`--shaderbg`],text:[`--ink`,`--s2-content-default`,`--s2-gray-900`],accent:[`--ctx`,`--waffle`,`--s2-accent`]}[t]||[])e[n]&&(e[n]=`${r}${i}`)}let t={id:`__preview`,name:`Preview`,base:i,tokens:e,disableShader:a,components:X(d)};_(t),m(`__preview`),w()}function S(){r.replaceChildren();let o=j(`wcset__builder-row`),b=document.createElement(`label`);b.textContent=`Name`,o.append(b,p),r.append(o),r.append(J(i,e=>{i=e,S(),x()}));let C={disabled:a};for(let e of q(c,u,C,d,()=>{a=C.disabled,x()}))r.append(e);let T=document.createElement(`button`);if(T.className=`wcset__advanced-toggle`,T.textContent=s?`Hide advanced`:`Show advanced`,T.addEventListener(`click`,()=>{s=!s,S()}),r.append(T),s)for(let e of K(c,i,f,x))r.append(e);r.append(Y(()=>{let r=p.value.trim();if(!r){t.setStatus(`Name is required.`,!0);return}y();let o={...v(c,i),...f},s=e?.id??g(),u={id:s,name:r,base:i,tokens:o,disableShader:a,components:X(d)};l(`__preview`),_(u),m(s),w(),t.setStatus(`Saved "${r}".`),n()},()=>{l(`__preview`),e?m(e.id):h(),w(),n()}))}return S(),x(),r}async function ee(t){let n=await e(()=>import(`./main-C8hdX5_E.js`).then(e=>e.t),__vite__mapDeps([50,3,10,11,1,12,13,14,2,4,5,15,16,6,17,22,24,23,25,26,27,28,29,31,49,51]));A(document);let r=JSON.stringify(n.getAccounts());return new Promise(e=>{let i=document.createElement(`slicc-dialog`);i.classList.add(`wcset-dialog`),i.setAttribute(`heading`,`Accounts`);let a=j(`wcset`),o=j(`wcset__list`),s=j(`wcset__status`),c=(e,t=!1)=>{s.textContent=e,s.toggleAttribute(`data-error`,t)},l=r,u=()=>{let e=JSON.stringify(n.getAccounts());e!==l&&(l=e,window.dispatchEvent(new CustomEvent(`slicc:accounts-changed`)))},d=j(``),f={ps:n,log:t,setStatus:c,renderList:()=>{u(),o.replaceChildren();let e=n.getAccounts();if(e.length===0)o.append(j(`wcset__empty`,`No accounts configured.`));else for(let t of e)o.append(I(t,n.getProviderConfig(t.providerId),f));d.replaceChildren(L(f))}};f.renderList(),a.append(o,d,R(t,()=>{i.hide?.()}),s),i.append(a);let p=M(`wcset__btn wcset__btn--primary`,`Done`,()=>{i.hide?.()});p.setAttribute(`slot`,`footer`),i.append(p),i.addEventListener(`slicc-dialog-close`,()=>{i.remove(),e(JSON.stringify(n.getAccounts())!==r)}),document.body.append(i),i.show?.()})}async function te(e,t){return A(document),l(`__preview`),new Promise(n=>{let r=document.createElement(`slicc-dialog`);r.classList.add(`wcset-dialog`),r.setAttribute(`heading`,`Theme`);let i=j(`wcset`),a=j(`wcset__status`),o=(e,t=!1)=>{a.textContent=e,a.toggleAttribute(`data-error`,t)},s=G({ps:null,log:e,setStatus:o,renderList:()=>{}}),c=z(),d=B();i.append(s,c,d),t&&i.append(V(t,o,e)),i.append(a),r.append(i);let f=M(`wcset__btn wcset__btn--primary`,`Done`,()=>{r.hide?.()});f.setAttribute(`slot`,`footer`),r.append(f);let m=x().filter(e=>e!==`__preview`);r.addEventListener(`slicc-dialog-close`,()=>{u()===`__preview`&&(l(`__preview`),m.length>0?p(m):h(),w()),r.remove(),n()}),document.body.append(r),r.show?.()})}var $=`Done`,ne=`Reload now`,re=`Revert`,ie=`Experimental features take effect when SLICC boots. Nothing is saved until you reload — reload this tab to apply your changes, or revert.`;async function ae(e,n={}){if(!t(`experimental-settings`))return;A(document);let r=n.reload??(()=>location.reload());return new Promise(t=>{let n=document.createElement(`slicc-dialog`);n.classList.add(`wcset-dialog`),n.setAttribute(`heading`,`Experimental`);let i=j(`wcset`),a=j(`wcset__status`),o=(e,t=!1)=>{a.textContent=e,a.toggleAttribute(`data-error`,t)},s=j(`wcset__notice`,ie);s.hidden=!0;let c=()=>{n.hide?.()},l=M(`wcset__btn wcset__btn--primary`,$,()=>{d&&(f.commit(),r()),c()});l.setAttribute(`slot`,`footer`);let u=M(`wcset__btn`,re,()=>{f.revert(),o(`Reverted.`)});u.setAttribute(`slot`,`footer`),u.hidden=!0;let d=!1,f=H({log:e,setStatus:o,onPendingChange:e=>{d=e,s.hidden=!e,u.hidden=!e,l.textContent=e?ne:$}});i.append(f.element,s,a),n.append(i,u,l),n.addEventListener(`slicc-dialog-close`,()=>{n.remove(),t()}),document.body.append(n),n.show?.()})}export{ae as showExperimentalSettings,te as showThemeSettings,ee as showWcSettings};
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dist-EaD2nXS1.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-BLdHbfdN.js","assets/dist-DMTrP4j6.js","assets/quick-llm-BgX8DGOf.js","assets/logger-dqckiMJt.js","assets/core-BXRpM6QF.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/feature-flags-DDJdMcuw.js","assets/proxied-fetch-2sdz8vNB.js","assets/base64-ELzoYfwP.js","assets/api-endpoint-CNqFa-M3.js","assets/secret-topology-BuXN_6_0.js","assets/secrets-bridge-client-BD4AHTxg.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/image-markers-4eaAm9QS.js","assets/account-store-CEqw_XTp.js","assets/stored-accounts-CdMZdZUa.js","assets/providers-DUsi8UJy.js","assets/renamed-providers-d0bAaa0l.js","assets/bedrock-camp-compat-D6dUCn_T.js","assets/bedrock-camp-extra-models-COVvjLB5.js","assets/claude-model-version-3MWQoaco.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-Bn0sfTur.js","assets/isomorphic-git-j4Nlq2U8.js","assets/buffer-BeQa_9BU.js"])))=>i.map(i=>d[i]);
2
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./logger-dqckiMJt.js";import{t as n}from"./preload-helper-BLdHbfdN.js";import{a as r,o as i,s as a}from"./dictation-priming-BHJC0hch.js";import{i as o,n as s,r as c,t as l}from"./mime-types-D0xZwlMO.js";import{n as u,t as d}from"./base64-ELzoYfwP.js";import{a as f}from"./bridge-protocol-C52CnDIj.js";import{k as p,p as m}from"./account-store-CEqw_XTp.js";import{t as h}from"./sha256-DynDhwRL.js";import{p as g}from"./api-endpoint-CNqFa-M3.js";import{n as _}from"./image-markers-4eaAm9QS.js";import{d as v,f as y,i as b,m as x,u as S}from"./telemetry-kqkj0A7x.js";import{t as C}from"./GELATIERE-CLK_MA5a.js";import{t as ee}from"./types-D8gIX-W-.js";import{t as te}from"./same-file-identity-DuEcSmPX.js";import{a as w,n as T,r as ne,t as re}from"./icons-Bn0sfTur.js";import{a as ie,t as ae}from"./message-envelope-BPSSjJbW.js";import"./agent-message-to-chat-BiZHDYFR.js";function E(e,t){let n=e.replace(/^\uFEFF/,``).replace(/\r\n?/g,`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dist-EaD2nXS1.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-BLdHbfdN.js","assets/dist-DMTrP4j6.js","assets/quick-llm-DcceQmkj.js","assets/logger-dqckiMJt.js","assets/core-BXRpM6QF.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/feature-flags-DDJdMcuw.js","assets/proxied-fetch-2sdz8vNB.js","assets/base64-ELzoYfwP.js","assets/api-endpoint-CNqFa-M3.js","assets/secret-topology-BuXN_6_0.js","assets/secrets-bridge-client-BD4AHTxg.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/image-markers-4eaAm9QS.js","assets/account-store-CbKQrU_A.js","assets/stored-accounts-CdMZdZUa.js","assets/providers-s2pRjrQo.js","assets/renamed-providers-d0bAaa0l.js","assets/bedrock-camp-compat-D6dUCn_T.js","assets/bedrock-camp-extra-models-COVvjLB5.js","assets/claude-model-version-3MWQoaco.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-Bn0sfTur.js","assets/isomorphic-git-j4Nlq2U8.js","assets/buffer-BeQa_9BU.js"])))=>i.map(i=>d[i]);
2
+ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./logger-dqckiMJt.js";import{t as n}from"./preload-helper-BLdHbfdN.js";import{a as r,o as i,s as a}from"./dictation-priming-BHJC0hch.js";import{i as o,n as s,r as c,t as l}from"./mime-types-D0xZwlMO.js";import{n as u,t as d}from"./base64-ELzoYfwP.js";import{a as f}from"./bridge-protocol-C52CnDIj.js";import{k as p,p as m}from"./account-store-CbKQrU_A.js";import{t as h}from"./sha256-DynDhwRL.js";import{p as g}from"./api-endpoint-CNqFa-M3.js";import{n as _}from"./image-markers-4eaAm9QS.js";import{d as v,f as y,i as b,m as x,u as S}from"./telemetry-kqkj0A7x.js";import{t as C}from"./GELATIERE-CLK_MA5a.js";import{t as ee}from"./types-D8gIX-W-.js";import{t as te}from"./same-file-identity-DuEcSmPX.js";import{a as w,n as T,r as ne,t as re}from"./icons-Bn0sfTur.js";import{a as ie,t as ae}from"./message-envelope-BPSSjJbW.js";import"./agent-message-to-chat-BiZHDYFR.js";function E(e,t){let n=e.replace(/^\uFEFF/,``).replace(/\r\n?/g,`
3
3
  `).match(/^---\s*\n([\s\S]*?)\n---\s*\n([\s\S]*)$/);if(!n?.[2].trim())throw Error(`${t} requires frontmatter and a prompt`);return{frontmatter:n[1],body:n[2].trim()}}function oe(e,t){let n={},r=e.split(`
4
4
  `);for(let e=0;e<r.length;e+=1){let i=r[e];if(!i.trim()||i.trimStart().startsWith(`#`))continue;let a=i.match(/^([A-Za-z][A-Za-z0-9]*):\s*(.*)$/);if(!a)throw Error(`Invalid frontmatter line: ${i}`);let[,o,s]=a;if(t.arrayKeys.has(o)){let t=se(r,e,s);n[o]=t.value,e=t.lastIndex}else if(t.scalarKeys.has(o)&&s.trim())n[o]=ue(s);else throw Error(`Unsupported or empty frontmatter field: ${o}`)}return n}function se(e,t,n){if(n.trim()){let e=n.trim();if(!e.startsWith(`[`)||!e.endsWith(`]`))throw Error(`Expected an array`);let r=e.slice(1,-1).trim();return{value:r?ce(r):[],lastIndex:t}}let r=[],i=t;for(let n=t+1;n<e.length;n+=1){let t=e[n].match(/^\s+-\s+(.+)$/);if(!t)break;r.push(ue(le(t[1]))),i=n}return{value:r,lastIndex:i}}function ce(e){let t=[],n=0,r;for(let i=0;i<e.length;i+=1){let a=e[i];a===`"`||a===`'`?r=r===a?void 0:r??a:a===`,`&&!r&&(t.push(ue(e.slice(n,i))),n=i+1)}if(r)throw Error(`Unclosed quoted value`);return t.push(ue(e.slice(n))),t}function le(e){let t;for(let n=0;n<e.length;n+=1){let r=e[n];if(r===`"`||r===`'`)t=t===r?void 0:t??r;else if(r===`#`&&!t&&(n===0||/\s/.test(e[n-1])))return e.slice(0,n).trimEnd()}return e}function ue(e){let t=e.trim();if(!t)throw Error(`Empty frontmatter value`);let n=t[0];if((n===`"`||n===`'`)&&t.at(-1)===n)return t.slice(1,-1);if(n===`"`||n===`'`)throw Error(`Unclosed quoted value`);return t}function de(e,t,n){let r=e[t];if(r===void 0)return[...n];if(!Array.isArray(r)||r.some(e=>!e))throw Error(`${t} is invalid`);return[...r]}function fe(e,t){if(e!==void 0){if(typeof e!=`string`||!e)throw Error(`${t} is invalid`);return e}}function pe(e,t,n,r=`timeoutSeconds`){if(e===void 0)return t;if(typeof e!=`string`)throw Error(`${r} is invalid`);let i=Number(e);if(!Number.isFinite(i)||i<=0)throw Error(`${r} must be positive`);return Math.min(i,n)}function me(e,t){if(e.some(e=>!e.startsWith(`/`)||e.includes(`\0`)||t===`writablePaths`&&e===`/`))throw Error(`${t} must contain absolute VFS paths`)}var D=`gelatiere`,he=`gelatiere`,ge=`gelatiere-nightly`,_e=`system:gelatiere`;function ve(e){return e.parentJid===`system:gelatiere`&&e.folder===`gelatiere`}var ye=e({DEFAULT_GELATIERE_INTERVAL_HOURS:()=>24,DEFAULT_GELATIERE_MD:()=>C,DEFAULT_GELATIERE_NIGHTLY_CRON:()=>Te,DEFAULT_MAX_SUGGESTIONS:()=>5,GELATIERE_BASE_ALLOWED_COMMANDS:()=>Oe,GELATIERE_DIR:()=>Se,GELATIERE_FOLDER:()=>D,GELATIERE_INSTRUCTIONS_PATH:()=>xe,GELATIERE_NIGHTLY_CRON_NAME:()=>ge,GELATIERE_OWNER_JID:()=>_e,GELATIERE_SKILL_PATH:()=>k,GELATIERE_SPRINKLE_NAME:()=>he,GELATIERE_STATE_PATH:()=>O,GELATIERE_SUGGESTIONS_ACTION:()=>we,GELATIERE_SUGGESTIONS_PATH:()=>Ce,LICK_SUGGESTION_LIMIT:()=>5,MAX_STORED_SUGGESTIONS:()=>40,MAX_SUGGESTIONS_PER_PASS:()=>10,buildGelatiereLickBody:()=>pt,coerceSuggestions:()=>ct,describeGelatiereLick:()=>M,dismissGelatiereSuggestion:()=>Ye,isGelatiereUnit:()=>ve,isNewSince:()=>qe,isPassDue:()=>He,loadGelatiereConfig:()=>Pe,mergeSuggestions:()=>lt,openSuggestions:()=>We,parseGelatiereDocument:()=>A,readGelatiereState:()=>Be,readGelatiereSuggestions:()=>Le,recordGelatiereTrigger:()=>Ue,recordPass:()=>ft,suggestionsForCone:()=>Je,suggestionsSince:()=>Ke,takeGelatiereSuggestion:()=>Xe,takenSuggestions:()=>Ge,writeGelatiereState:()=>Ve,writeGelatiereSuggestions:()=>ze}),be=t(`gelatiere-store`),xe=`/shared/GELATIERE.md`,Se=`/shared/.gelatiere`,Ce=`${Se}/suggestions.json`,O=`${Se}/state.json`,we=`gelatiere-suggestions`,k=`/workspace/skills/gelatiere/SKILL.md`,Te=`0 3 * * *`,Ee=8,De={arrayKeys:new Set([`allowedCommands`]),scalarKeys:new Set([`intervalHours`,`nightly`,`maxSuggestions`])},Oe=`awk.basename.cat.column.cut.date.dirname.echo.expr.false.file.find.fold.gelatiere.grep.head.jq.ls.man.memory.mkdir.nl.paste.printf.realpath.rg.sed.seq.sort.stat.tail.tee.test.touch.tr.true.uniq.upskill.wc`.split(`.`),ke=/^[A-Za-z0-9][A-Za-z0-9._-]*$/,Ae=new Set([`skill`,`use-case`,`tip`,`skill-idea`,`issue`]),je=new Set([`use-case`,`skill-idea`,`issue`]);function A(e){let t=E(e,`GELATIERE.md`),n=oe(t.frontmatter,De),r=fe(n.nightly,`nightly`)??`0 3 * * *`;if(r.trim().split(/\s+/).length!==5)throw Error(`nightly must be a 5-field cron expression`);return{allowedCommands:Me(n),intervalHours:Ne(n.intervalHours,`intervalHours`,24),nightly:r.trim(),maxSuggestions:Math.min(10,Ne(n.maxSuggestions,`maxSuggestions`,5)),instructions:t.body}}function Me(e){let t=de(e,`allowedCommands`,[]),n=t.find(e=>!ke.test(e));if(n!==void 0)throw Error(`allowedCommands must contain bare command names, not "${n}"`);return[...new Set([...Oe,...t])]}function Ne(e,t,n){if(e===void 0)return n;if(typeof e!=`string`)throw Error(`${t} is invalid`);let r=Number(e);if(!Number.isFinite(r)||r<=0)throw Error(`${t} must be positive`);return r}async function Pe(e){try{return A(await Fe(e,xe))}catch(e){return be.warn(`Could not load valid GELATIERE.md; using built-in default`,{error:j(e)}),A(C)}}async function Fe(e,t){let n=await e.readFile(t,{encoding:`utf-8`});return typeof n==`string`?n:new TextDecoder().decode(n)}async function Ie(e,t){let n;try{n=await Fe(e,t)}catch(e){if(e instanceof ee&&e.code===`ENOENT`)return;throw e}try{return JSON.parse(n)}catch{return}}async function Le(e){let t=await Ie(e,Ce);if(!Array.isArray(t))return[];let n=[];for(let e of t){let t=st(e,null);if(!t)continue;let{dismissedAt:r,takenAt:i,retargets:a}=e;typeof r==`string`&&r&&(t.dismissedAt=r),typeof i==`string`&&i&&(t.takenAt=i);let o=Re(a);o.length>0&&(t.retargets=o),n.push(t)}return n}function Re(e){return Array.isArray(e)?e.filter(e=>!!e&&typeof e.cone==`string`&&typeof e.at==`string`):[]}async function ze(e,t){await e.mkdir(Se,{recursive:!0}),await e.writeFile(Ce,`${JSON.stringify(t,null,2)}\n`)}async function Be(e){let t=await Ie(e,O);if(!t||typeof t!=`object`)return{passes:0};let n=t;return{passes:typeof n.passes==`number`&&n.passes>=0?n.passes:0,...typeof n.lastPassAt==`string`?{lastPassAt:n.lastPassAt}:{},...typeof n.lastTriggeredAt==`string`?{lastTriggeredAt:n.lastTriggeredAt}:{},...typeof n.lastDeliveredAt==`string`?{lastDeliveredAt:n.lastDeliveredAt}:{}}}async function Ve(e,t){await e.mkdir(Se,{recursive:!0}),await e.writeFile(O,`${JSON.stringify(t,null,2)}\n`)}function He(e,t,n){let r=Math.max(...[e.lastPassAt,e.lastTriggeredAt].map(e=>e?Date.parse(e):NaN).filter(e=>!Number.isNaN(e)));return!Number.isFinite(r)||t.getTime()-r>=n*36e5}async function Ue(e,t=new Date){await Ve(e,{...await Be(e),lastTriggeredAt:t.toISOString()})}function We(e){return e.filter(e=>!e.dismissedAt&&!e.takenAt)}function Ge(e){return e.filter(e=>!!e.takenAt)}function Ke(e,t){return We(e).filter(e=>qe(e,t))}function qe(e,t,n){let r=t?Date.parse(t):NaN;if(Number.isNaN(r))return!0;let i=e=>{let t=Date.parse(e);return Number.isNaN(t)||t>r};return i(e.createdAt)?!0:(e.retargets??[]).some(e=>(n===void 0||e.cone===n)&&i(e.at))}function Je(e,t,n,r){return e.filter(e=>{let i=e.cones?.filter(e=>r.has(e))??[];return i.length>0?i.includes(t):t===n})}async function Ye(e,t,n=new Date){return Qe(e,t,`dismissedAt`,n)}async function Xe(e,t,n=new Date){return Qe(e,t,`takenAt`,n)}var Ze=Promise.resolve();function Qe(e,t,n,r){let i=async()=>{let i=await Le(e),a=i.find(e=>e.id===t&&!e.dismissedAt&&!e.takenAt);return a?(a[n]=r.toISOString(),await ze(e,i),!0):!1},a=Ze.then(i,i);return Ze=a.catch(()=>!1),a}var $e=/[^a-z0-9]+/g;function et(e){return e.toLowerCase().replace($e,`-`).replace(/^-+|-+$/g,``).slice(0,60)}function tt(e,t){if(typeof e!=`string`)return;let n=e.trim();return n?n.slice(0,t):void 0}function nt(e){if(e)try{let t=new URL(e).protocol;return t===`http:`||t===`https:`?e:void 0}catch{return}}var rt=/^[A-Za-z0-9@._/:=-]+$/;function it(e){if(!e)return;let t=e.split(/\s+/);if(!(t[0]!==`upskill`||t.length<2))return t.slice(1).every(e=>rt.test(e))?e:void 0}var at=/^[a-z0-9][a-z0-9_-]*$/i;function ot(e){let t=(typeof e==`string`?[e]:Array.isArray(e)?e:[]).map(e=>tt(e,80)).filter(e=>e!==void 0&&at.test(e)),n=[...new Set(t)].slice(0,Ee);return n.length>0?n:void 0}function st(e,t){if(!e||typeof e!=`object`)return null;let n=e,r=typeof n.kind==`string`?n.kind:``,i=tt(n.title,200),a=tt(n.body,1e3);if(!Ae.has(r)||!i||!a)return null;let o=et(tt(n.id,80)??`${r}-${i}`)||et(`${r}-${i}`);if(!o)return null;let s=t??tt(n.createdAt,40)??``,c=n.skill===void 0?void 0:tt(n.skill,120),l=n.install===void 0?void 0:it(tt(n.install,300)),u=n.prompt===void 0?void 0:tt(n.prompt,1e3);if(r===`skill`&&(!c||!l)||je.has(r)&&!u)return null;let d=ot(n.cones);return{id:o,kind:r,title:i,body:a,...n.skill===void 0?{}:{skill:c},...n.install===void 0?{}:{install:l},...n.prompt===void 0?{}:{prompt:u},...n.url===void 0?{}:{url:nt(tt(n.url,500))},...n.evidence===void 0?{}:{evidence:tt(n.evidence,500)},...d?{cones:d}:{},createdAt:s}}function ct(e,t,n=10){let r=Array.isArray(e)?e:e&&typeof e==`object`&&Array.isArray(e.suggestions)?e.suggestions??[]:[],i=new Set,a=[];for(let e of r){let r=st(e,t);if(r&&!i.has(r.id)&&(i.add(r.id),a.push(r),a.length>=n))break}return a}function lt(e,t,n=40){let r=new Map(t.map(e=>[e.id,e])),i=new Set(e.map(e=>e.id)),a=t.filter(e=>!i.has(e.id)),o=[...a,...e.map(e=>ut(e,r.get(e.id)))];for(;o.length>n;){let e=dt(o,e=>!!e.dismissedAt),t=e>=0?e:dt(o,e=>!!e.takenAt);o.splice(t>=0?t:o.length-1,1)}return{merged:o,added:a}}function ut(e,t){if(!t?.cones||e.dismissedAt||e.takenAt)return e;let n=e.cones??[],r=t.cones.filter(e=>!n.includes(e)),i=[...n,...r].slice(0,Ee),a=r.filter(e=>i.includes(e));if(a.length===0)return e;let o=[...e.retargets??[],...a.map(e=>({cone:e,at:t.createdAt}))];return{...e,cones:i,retargets:o}}function dt(e,t){for(let n=e.length-1;n>=0;--n)if(t(e[n]))return n;return-1}async function ft(e,t,n=new Date){let r=await Pe(e),i=ct(t,n.toISOString(),r.maxSuggestions),{merged:a,added:o}=lt(await Le(e),i);await ze(e,a);let s=await Be(e);return await Ve(e,{...s,passes:s.passes+1,lastPassAt:n.toISOString()}),{added:o,open:We(a)}}function pt(e,t){return{action:we,data:{added:e.length,open:t.length,suggestions:t.slice(0,5),path:Ce,skill:k}}}function j(e){return e instanceof Error?e.message:String(e)}function M(e){let t=N(e);if(!t)return null;let{action:n,bag:r}=t;return n===`gelatiere-suggestions`?mt(n,r):n===`session-settled`?gt(n,r):n===`run`?_t(n,r):{action:n,headline:`gelatiere: ${n}`,titles:[]}}function N(e){let t=e.indexOf(`{`),n=e.lastIndexOf(`}`);if(t<0||n<=t)return null;let r;try{r=JSON.parse(e.slice(t,n+1))}catch{return null}if(!r||typeof r!=`object`)return null;let{action:i,data:a}=r;return typeof i==`string`?{action:i,bag:a&&typeof a==`object`?a:{}}:null}function mt(e,t){let n=ht(t.suggestions),r=typeof t.added==`number`?t.added:n.length,i=typeof t.open==`number`?t.open:n.length;return{action:e,headline:r===0?`Nothing new — ${i} open ${i===1?`suggestion`:`suggestions`} in the suggestions card.`:`${r} new ${r===1?`suggestion`:`suggestions`} (${i} open) — the cards are in the suggestions sprinkle.`,titles:n}}function ht(e){return Array.isArray(e)?e.map(e=>e&&typeof e==`object`?e.title:void 0).filter(e=>typeof e==`string`&&e.length>0):[]}function gt(e,t){let n=typeof t.cone==`string`?t.cone:void 0;return{action:e,headline:n?`A session ended in ${n} — time for a pass.`:`A session ended — time for a pass.`,titles:[]}}function _t(e,t){let n=typeof t.requestedBy==`string`?t.requestedBy:void 0;return{action:e,headline:n?`${n} asked for a pass now.`:`Someone asked for a pass now.`,titles:[]}}function vt(e,t){let n=g(),r=`/preview${e}${t?`?projectRoot=${encodeURIComponent(t)}`:``}`;if(n){let e=globalThis.chrome?.runtime?.getURL;if(e)return e(r)}let i=`http://localhost:5710`;return typeof window<`u`&&window.location?.origin?i=window.location.origin:typeof self<`u`&&self.location?.origin&&(i=self.location.origin),`${i}${r}`}var yt={camera:`Camera`,microphone:`Microphone`};function bt(e,t,n){return(e??``).trim()||`${yt[n]} ${t+1}`}function xt(e,t){return e.map((e,n)=>({deviceId:e.deviceId,label:bt(e.label,n,t)}))}function St(e){return e.length>=2}function Ct(e){if(e.length===0)return null;let t=e.find(e=>e.deviceId==="default");if(t)return t.deviceId;let n=e.find(e=>(e.label??``).trim().toLowerCase().startsWith(`default`));return n?n.deviceId:e[0].deviceId}function P(){if(typeof window>`u`)return null;let e=window;return e.SpeechRecognition??e.webkitSpeechRecognition??null}var wt=3e3,Tt={engine:`builtin`,state:`idle`};function Et(){return{async permission(){try{return(await navigator.permissions.query({name:`microphone`})).state}catch{return`prompt`}},async requestPermission(){if(!navigator.mediaDevices?.getUserMedia)return!1;try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});for(let t of e.getTracks())t.stop();return!0}catch{return!1}},async microphones(){if(!navigator.mediaDevices?.enumerateDevices)return[];try{return xt((await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===`audioinput`),`microphone`)}catch{return[]}},async start(e){let t=P();if(!t)throw Error(`Speech recognition is not supported in this browser.`);let n=new t;n.continuous=!0,n.interimResults=!0,e.lang&&(n.lang=e.lang);let r=``,i=``,a=!1,o=[],s=()=>{a=!0;let e=o;o=[];for(let t of e)t()};n.onresult=t=>{i=``;for(let e=t.resultIndex;e<t.results.length;e++){let n=t.results[e];n.isFinal?r+=n[0].transcript:i+=n[0].transcript}let n=`${r}${i}`.trim();n&&e.onPartial?.(n)},n.onerror=t=>{t.error!==`no-speech`&&t.error!==`aborted`&&e.onError?.(`Speech recognition error: ${t.error}`)},n.onend=s,n.start();let c=()=>`${r}${i}`.trim();return{stop(){return a?Promise.resolve(c()):new Promise(e=>{let t=setTimeout(()=>e(c()),wt);o.push(()=>{clearTimeout(t),e(c())});try{n.stop()}catch{clearTimeout(t),e(c())}})},cancel(){n.onresult=null,n.onerror=null,n.onend=null;try{(n.abort??n.stop).call(n)}catch{}s()}}},status(){return Tt},onStatus(e){return e(Tt),()=>{}},warmup(){}}}var Dt={sent:{freq:660,freqSlideTo:990,duration:.12,peakGain:.06,type:`sine`},"tool-start":{freq:520,freq2:780,duration:.07,peakGain:.04,type:`triangle`},"tool-finish":{freq:880,freq2:1320,duration:.07,peakGain:.04,type:`sine`}};function Ot(e,t){let n=Dt[t],r=e.currentTime,i=r+n.duration,a=e.createGain();a.gain.setValueAtTime(1e-4,r),a.gain.exponentialRampToValueAtTime(n.peakGain,r+n.duration*.2),a.gain.exponentialRampToValueAtTime(1e-4,i),a.connect(e.destination);let o=e.createOscillator();if(o.type=n.type,o.frequency.setValueAtTime(n.freq,r),n.freqSlideTo!==void 0&&o.frequency.linearRampToValueAtTime(n.freqSlideTo,i),o.connect(a),o.start(r),o.stop(i),n.freq2!==void 0){let t=e.createOscillator();t.type=n.type,t.frequency.setValueAtTime(n.freq2,r),t.connect(a),t.start(r),t.stop(i)}}var kt=`<div class="msg__dip-pending" role="status" aria-live="polite" aria-label="Pouring a dip"><span class="msg__dip-pending-label">Pouring a dip…</span><span class="msg__dip-pending-status" aria-hidden="true"></span></div>`,At=e({applyTimestampVisibility:()=>Rt,formatMessageTimestamp:()=>Bt,getShowTimestamps:()=>It,initTimestampPreference:()=>zt,setShowTimestamps:()=>Lt}),jt=`slicc_show_timestamps`,Mt=`slicc-show-timestamps`,Nt=`slicc-timestamp-visibility`,Pt=!1;function Ft(e){if(e.getElementById(Nt))return;let t=e.createElement(`style`);t.id=Nt,t.textContent=[`slicc-user-message::part(timestamp),`,`slicc-agent-message .msg-ts {`,` display: none;`,`}`,`.${Mt} slicc-user-message::part(timestamp),`,`.${Mt} slicc-agent-message .msg-ts {`,` display: block;`,`}`].join(`
5
5
  `),e.head.appendChild(t)}function It(){if(typeof localStorage>`u`||typeof localStorage?.getItem!=`function`)return!0;let e=localStorage.getItem(jt);return e===null||e===`true`}function Lt(e){typeof localStorage<`u`&&typeof localStorage?.setItem==`function`&&localStorage.setItem(jt,String(e)),Rt()}function Rt(e){if(typeof document>`u`)return;Ft(document);let t=e===void 0?It():e;document.documentElement.classList.toggle(Mt,t),Pt=!0}function zt(){Pt||Rt()}function Bt(e){return e?new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`}):null}var Vt=[`top`,`right`,`bottom`,`left`,`center`];function Ht(e){return e!=null&&Vt.includes(e)}function Ut(e){let t=e?.panelMeta;return t&&typeof t.id==`string`?t:void 0}var Wt=new Map,Gt=new EventTarget;function Kt(e,t){Gt.dispatchEvent(new CustomEvent(`panel-registry-change`,{detail:{id:e,change:t}}))}function qt(e){let{id:t}=e.meta,n=Wt.has(t);return Wt.set(t,e),Kt(t,`registered`),!n}function Jt(e,t,n=`builtin`){let r=Ut(t);return r?qt({meta:r,source:{kind:`element`,tag:e},origin:n}):!1}function Yt(e){return Wt.delete(e)?(Kt(e,`unregistered`),!0):!1}function Xt(e){return Wt.get(e)}function Zt(e){return Wt.has(e)}function Qt(){return[...Wt.values()]}function $t(e){return Qt().filter(t=>t.origin===e)}function en(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}var tn=`.dock-tree__parking, .slicc-layout__parking`;function nn(e,t){let n=e.querySelector(`[surface-id="${en(t)}"]`);return!n||n.closest(tn)?!1:(n.requestFullscreen?.()?.catch(()=>{}),!0)}var rn=e({DEFAULT_ZONE_AXIS:()=>sn,LAYOUT_SCHEMA_VERSION:()=>1,ZONE_NAMES:()=>on,cloneLayout:()=>un,emptyLayout:()=>ln,isPanelLocked:()=>bn,isSplitNode:()=>dn,layoutPanelIds:()=>pn,moveToZone:()=>hn,parseLayoutDocument:()=>Cn,removeFromZones:()=>gn,resolveLayout:()=>yn,sizeToFlex:()=>Sn,variantMatches:()=>fn,walkCenter:()=>vn,zoneAxis:()=>cn,zoneOfPanel:()=>mn,zonesFromCenter:()=>_n}),an=1,on=[`top`,`left`,`center`,`right`,`bottom`],sn={top:`row`,bottom:`row`,left:`col`,right:`col`,center:`col`};function cn(e,t){return e.axes?.[t]??sn[t]}function ln(e=`empty`){return{version:1,id:e,base:{}}}function un(e){return JSON.parse(JSON.stringify(e))}function dn(e){return`split`in e}function fn(e,t){return!(e.minWidth!=null&&t.width<e.minWidth||e.maxWidth!=null&&t.width>e.maxWidth||e.minHeight!=null&&t.height<e.minHeight||e.maxHeight!=null&&t.height>e.maxHeight||e.orientation!=null&&(t.width>=t.height?`landscape`:`portrait`)!==e.orientation||e.platform!=null&&t.platform!=null&&e.platform!==t.platform)}function pn(e){let t=[],n=new Set,r=e=>{n.has(e)||(n.add(e),t.push(e))};for(let t of e.docks)for(let e of t.panels)r(e);if(e.zones)for(let t of on)for(let n of e.zones[t]??[])r(n);else e.center&&vn(e.center,e=>r(e.panel));for(let t of e.floating)r(t.panel);return t}function mn(e,t){for(let n of on)if((e[n]??[]).includes(t))return n;return null}function hn(e,t,n){if(mn(e,t)===n)return e;let r=un(e);for(let e of on){let n=r[e];n&&(r[e]=n.filter(e=>e!==t))}return r[n]=[...r[n]??[],t],r}function gn(e,t){let n=un(e);for(let e of on){let r=n[e];r&&(n[e]=r.filter(e=>e!==t))}return n}function _n(e){let t=[];return e&&vn(e,e=>t.push(e.panel)),{center:t}}function vn(e,t){if(!dn(e)){t(e);return}for(let n of e.children)vn(n,t)}function yn(e,t){let n={id:e.id,locked:e.locked===!0,docks:un(e.base.docks??[]),zones:un(e.base.zones??null),center:un(e.base.center??null),floating:un(e.base.floating??[]),panels:un(e.panels??{}),appliedVariants:[]};return(e.variants??[]).forEach((e,r)=>{if(fn(e.when,t)){n.appliedVariants.push(r),e.docks!==void 0&&(n.docks=un(e.docks)),e.zones!==void 0&&(n.zones=un(e.zones)),e.center!==void 0&&(n.center=un(e.center)),e.floating!==void 0&&(n.floating=un(e.floating));for(let[t,r]of Object.entries(e.panels??{}))n.panels[t]={...n.panels[t],...r}}}),n}function bn(e,t){if(e.locked||e.panels[t]?.locked===!0)return!0;for(let n of e.docks)if(n.panels.includes(t))return n.locked===!0;for(let n of e.floating)if(n.panel===t)return n.locked===!0;if(e.zones){let n=mn(e.zones,t);return n?(e.zones.locked??[]).includes(n):!1}return e.center?xn(e.center,t,!1):!1}function xn(e,t,n){let r=n||e.locked===!0;return dn(e)?e.children.some(e=>xn(e,t,r)):e.panel===t&&r}function Sn(e){if(e==null)return`1 1 auto`;if(typeof e==`number`)return`${e} 1 0`;let t=e.trim(),n=/^([\d.]+)fr$/.exec(t);return n?`${n[1]} 1 0`:/^[\d.]+$/.test(t)?`${t} 1 0`:`0 0 ${t}`}function Cn(e){if(!e||typeof e!=`object`)return{error:`layout must be an object`};let t=e;if(typeof t.id!=`string`||t.id.trim()===``)return{error:`layout.id must be a non-empty string`};if(typeof t.version!=`number`)return{error:`layout.version must be a number`};if(t.version>1)return{error:`layout.version ${t.version} is newer than supported (1)`};if(!t.base||typeof t.base!=`object`)return{error:`layout.base must be an object`};for(let e of t.base.docks??[]){if(!wn(e?.edge))return{error:`invalid dock edge: ${String(e?.edge)}`};if(!Array.isArray(e.panels))return{error:`dock.${e.edge}.panels must be an array`}}if(t.base.center!=null){let e=Tn(t.base.center);if(e)return{error:e}}return t}function wn(e){return e===`top`||e===`right`||e===`bottom`||e===`left`}function Tn(e){if(!e||typeof e!=`object`)return`center node must be an object`;let t=e;if(typeof t.panel==`string`)return null;if(t.split!==`row`&&t.split!==`col`)return'center node needs a `panel` string or a `split` of "row"/"col"';if(!Array.isArray(t.children)||t.children.length===0)return"a split node needs a non-empty `children` array";for(let e of t.children){let t=Tn(e);if(t)return t}return null}var En=[`top-left`,`top-right`,`bottom-left`,`bottom-right`,`top`,`right`,`bottom`,`left`],Dn=`top-right`,On=`slicc-launcher-corner`,kn=[`disconnected`,`connected`,`error`],An=`disconnected`,jn=`follower-status`,Mn=new Set(En),Nn=new Set(kn);function Pn(e,t=Dn){return e&&Mn.has(e)?e:t}function Fn(e,t=An){return e&&Nn.has(e)?e:t}function In(e){return e>=6}function Ln({clientX:e,clientY:t,viewportWidth:n,viewportHeight:r,velocityXPxPerMs:i=0,velocityYPxPerMs:a=0,flickProjectionMs:o=180}){let s=Rn(e+i*o,0,n),c=Rn(t+a*o,0,r),l=s/n,u=c/r,d=l>1/3&&l<2/3,f=u>1/3&&u<2/3;if(d&&f){let e=u,t=1-u,n=l,r=1-l,i=Math.min(e,t,n,r);return i===e?`top`:i===t?`bottom`:i===n?`left`:`right`}return d?u<.5?`top`:`bottom`:f?l<.5?`left`:`right`:`${u<.5?`top`:`bottom`}-${l<.5?`left`:`right`}`}function Rn(e,t,n){return Math.min(Math.max(e,t),n)}var zn=`<?xml version="1.0" encoding="UTF-8"?>
@@ -9117,7 +9117,7 @@ Example input:
9117
9117
  2. bash: {"command":"ls /published"}
9118
9118
  3. bash: {"command":"diff /drafts /published"}
9119
9119
  Example output: Compare drafts against published files`;function SN(e){return e.length>=6&&/[a-zA-Z]/.test(e)&&/\s/.test(e.trim())}function CN(e,t){if(e.length===0)return;let r=bN(e);if(!r)return;let i=_N.get(r);if(i){t.setAttribute(`label`,i);return}let a=e[0]?.id;if(a){let e=yN.get(a);e&&t.setAttribute(`label`,e)}if(vN.has(r))return;vN.add(r);let o=e.map((e,t)=>{let n;try{n=JSON.stringify(e.input??{})}catch{n=String(e.input??``)}return n.length>300&&(n=`${n.slice(0,300)}…`),`${t+1}. ${e.name}: ${n}`}).join(`
9120
- `);n(async()=>{let{quickLabel:e}=await import(`./quick-llm-BgX8DGOf.js`).then(e=>e.n);return{quickLabel:e}},__vite__mapDeps([4,1,5,6,2,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25])).then(({quickLabel:e})=>e({system:xN,prompt:`Label these tool calls (inputs only):\n${o}`,maxTokens:40})).then(e=>{let n=e?.replace(/^["']|["']$|\.$/g,``).trim()??``;SN(n)&&(_N.set(r,n),a&&yN.set(a,n),t.isConnected&&t.setAttribute(`label`,n))}).catch(()=>void 0).finally(()=>vN.delete(r))}function wN(e,t={}){let n=kM(`slicc-tool-cluster`,{count:String(e.length)});return t.open&&n.setAttribute(`open`,``),n.append(...e),t.toolCalls&&t.toolCalls.length>0&&CN(t.toolCalls,n),n}function TN(e){let t=document.createElement(`slicc-agent-message`);t.setAttribute(`data-msg-id`,e.id),Number.isFinite(e.timestamp)&&e.timestamp>0&&t.setAttribute(`data-msg-time`,String(e.timestamp));let n=(e.content??``).trim().length>0,r=Bt(e.timestamp);return r&&n&&t.setAttribute(`timestamp`,r),e.isStreaming&&t.setAttribute(`streaming`,``),t.setBodyHtml(xM(e.content,e.isStreaming===!0)),n||t.setAttribute(`data-empty`,``),[t,...(e.toolCalls??[]).map(t=>mN(t,e.id))]}function EN(e,t){let n=e.querySelectorAll(`:scope > slicc-tool-cluster`);for(let e of n){let n=Array.from(e.querySelectorAll(`slicc-action-row`));DN(e,n,t);let r=e.parentNode;if(!r){e.remove();continue}for(let t of n)ON(t,r,e);e.remove()}}function DN(e,t,n){if(!e.hasAttribute(`open`))return;let r=t[0]?.dataset.msgId;r&&n.add(r)}function ON(e,t,n){let r=e.dataset.msgId,i=r&&t instanceof Element?t.querySelector(`:scope > slicc-agent-message[data-msg-id="${r}"]`):null;if(!i||i.parentNode!==t){t.insertBefore(e,n);return}let a=i;for(;a.nextSibling instanceof HTMLElement&&a.nextSibling.tagName.toLowerCase()===`slicc-action-row`&&a.nextSibling.dataset.msgId===r;)a=a.nextSibling;t.insertBefore(e,a.nextSibling)}var kN=new Set([`slicc-user-message`,`slicc-lick-card`,`slicc-error-card`,`slicc-delegation-line`,`slicc-day-separator`,`slicc-compaction-marker`]);function AN(e){return e instanceof HTMLElement?kN.has(e.tagName.toLowerCase()):!0}function jN(e){return e instanceof HTMLElement&&e.tagName.toLowerCase()===`slicc-action-row`}function MN(e){return e instanceof HTMLElement&&e.tagName.toLowerCase()===`slicc-agent-message`}function NN(e){let t=[],n=[];for(let r of e)MN(r)?!r.hasAttribute(`data-empty`)&&n.length>0&&(t.push(n),n=[]):jN(r)&&n.push(r);return n.length>0&&t.push(n),t}function PN(e,t){let n=[];for(let r of e){let e=r.dataset.msgId,i=r.dataset.toolId;if(!e||!i)return;let a=t(e,i);if(!a)return;n.push(a)}return n}function FN(e,t){let n=e[0],r=n.parentNode;if(!r)return;let i=new Set(e),a=n.nextSibling;for(;a&&i.has(a);)a=a.nextSibling;let o=n.dataset.msgId,s=wN(e,{open:!!(o&&t.openClusterAnchors.has(o)),toolCalls:t.toolCallLookup?PN(e,t.toolCallLookup):void 0});r.insertBefore(s,a)}function IN(e,t){EN(e,t.openClusterAnchors);let n=Array.from(e.children),r=0;for(;r<n.length;){if(AN(n[r])){r++;continue}let e=r;for(;e<n.length&&!AN(n[e]);)e++;let i=NN(n.slice(r,e));for(let e of i)e.length>=3&&FN(e,t);r=e}t.openClusterAnchors.clear()}function LN(e,t){return e.channel===`sprinkle`&&t?.[2]?.trim()===`gelatiere`}function RN(e){let t=M(e);if(!t)return null;let n=document.createElement(`div`),r=document.createElement(`p`);if(r.textContent=t.headline,n.append(r),t.titles.length>0){let e=document.createElement(`ul`);for(let n of t.titles){let t=document.createElement(`li`);t.textContent=n,e.append(t)}n.append(e)}return n}function zN(e){let t=CM.exec(e.content),n=e.lickCount??1,r=DM.exec(e.content),i=r?OM(r[1]):null,a=LN(e,t),o=a?M(e.content)?.action:void 0,s=kM(`slicc-lick-card`,{kind:a?he:e.channel??`webhook`,"event-label":a?(o??`suggestions`).replace(/^gelatiere-/,``):NM(e.content,e.channel,t,i),collapsible:``,collapsed:``});i&&s.setAttribute(`hue`,RD({isRoot:!1,name:i})),n>1&&s.setAttribute(`count`,String(n)),e.lickState&&e.lickState!==`pending`&&s.setAttribute(`state`,e.lickState);let c=e.lickParts??[e.content];for(let e of c){let t=a?RN(e):null;if(t){s.append(t);continue}let n=document.createElement(`div`);n.innerHTML=bM(TM(e)),s.append(n)}return s}function BN(e){let t=kM(`slicc-delegation-line`,{kind:`feed`,verb:`feed_scoop`,label:AM(e.content.replace(/\*\*\[[^\]]*\]\*\*\s*/,``))}),n=document.createElement(`slicc-user-message`);return n.setBodyHtml(bM(e.content)),[t,n]}var VN=`Out of AI budget`;function HN(){try{return m(p())}catch{return[]}}function UN(e){if(e.resetsAt===null||/reset/i.test(e.message))return e.message;let t=new Date(e.resetsAt);return Number.isNaN(t.getTime())?e.message:`${e.message} Resets on ${t.toLocaleDateString(void 0,{dateStyle:`long`})}.`}function WN(){return HN().length===0?{action:`settings`,"button-label":`Add a provider`}:{action:`change-model`,"button-label":`Switch provider and try again`,"secondary-action":`settings`,"secondary-button-label":`Add a provider`}}function GN(e,t){let n={message:e.content,"message-id":e.id},r=x(e.content);return r&&(n.label=VN,n.message=UN(r)),t?(n[`no-action`]=``,kM(`slicc-error-card`,n)):r?kM(`slicc-error-card`,{...n,...WN()}):(y(e.content)?n.action=`settings`:v(e.content)?n.action=`change-model`:S(e.content)&&(n.action=`login`),kM(`slicc-error-card`,n))}function KN(e){return kM(`slicc-compaction-marker`,{trigger:e.trigger,state:e.state,...e.transcriptPath?{transcript:e.transcriptPath}:{}})}function qN(e,t={}){if(e.compaction)return e.compaction.state===`discarded`?[]:[KN(e.compaction)];if(e.source===`lick`)return[zN(e)];if(e.source===`delegation`||e.channel===`delegation`)return BN(e);if(e.error)return[GN(e,t.readOnly===!0)];if(e.role===`assistant`)return TN(e);let n=EM(e.content);return n?[zN({...e,source:`lick`,channel:n})]:[hN(e)]}function JN(e){let t=[];for(let n of e){let e=n;if(!n.source&&n.role===`user`){let t=EM(n.content);t&&(e={...n,source:`lick`,channel:t})}let r=t[t.length-1];if(!(e.lickId||r?.lickId)&&e.source===`lick`&&r?.source===`lick`&&r.channel===e.channel){r.lickParts=[...r.lickParts??[r.content],e.content],r.lickCount=r.lickParts.length,r.content+=`\n\n${e.content}`;continue}t.push({...e})}return t}function YN(e){return new Date(e).toLocaleDateString(void 0,{weekday:`short`,month:`short`,day:`numeric`})}function XN(e){return kM(`slicc-day-separator`,{label:YN(e)})}function ZN(e,t={}){let n=[],r=``;for(let i of e){let e=new Date(i.timestamp).toDateString();e!==r&&(n.push(XN(i.timestamp)),r=e),n.push(...qN(i,t))}let i=document.createElement(`div`);return i.append(...n),IN(i,{openClusterAnchors:new Set,toolCallLookup:(t,n)=>e.find(e=>e.id===t)?.toolCalls?.find(e=>e.id===n)}),Array.from(i.children)}var QN=`auto`;function $N(e){if(e===null)return null;if(e===`auto`||e===`esc`)return e}var eP=`slicc-shortcuts-style`,tP=`
9120
+ `);n(async()=>{let{quickLabel:e}=await import(`./quick-llm-DcceQmkj.js`).then(e=>e.n);return{quickLabel:e}},__vite__mapDeps([4,1,5,6,2,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25])).then(({quickLabel:e})=>e({system:xN,prompt:`Label these tool calls (inputs only):\n${o}`,maxTokens:40})).then(e=>{let n=e?.replace(/^["']|["']$|\.$/g,``).trim()??``;SN(n)&&(_N.set(r,n),a&&yN.set(a,n),t.isConnected&&t.setAttribute(`label`,n))}).catch(()=>void 0).finally(()=>vN.delete(r))}function wN(e,t={}){let n=kM(`slicc-tool-cluster`,{count:String(e.length)});return t.open&&n.setAttribute(`open`,``),n.append(...e),t.toolCalls&&t.toolCalls.length>0&&CN(t.toolCalls,n),n}function TN(e){let t=document.createElement(`slicc-agent-message`);t.setAttribute(`data-msg-id`,e.id),Number.isFinite(e.timestamp)&&e.timestamp>0&&t.setAttribute(`data-msg-time`,String(e.timestamp));let n=(e.content??``).trim().length>0,r=Bt(e.timestamp);return r&&n&&t.setAttribute(`timestamp`,r),e.isStreaming&&t.setAttribute(`streaming`,``),t.setBodyHtml(xM(e.content,e.isStreaming===!0)),n||t.setAttribute(`data-empty`,``),[t,...(e.toolCalls??[]).map(t=>mN(t,e.id))]}function EN(e,t){let n=e.querySelectorAll(`:scope > slicc-tool-cluster`);for(let e of n){let n=Array.from(e.querySelectorAll(`slicc-action-row`));DN(e,n,t);let r=e.parentNode;if(!r){e.remove();continue}for(let t of n)ON(t,r,e);e.remove()}}function DN(e,t,n){if(!e.hasAttribute(`open`))return;let r=t[0]?.dataset.msgId;r&&n.add(r)}function ON(e,t,n){let r=e.dataset.msgId,i=r&&t instanceof Element?t.querySelector(`:scope > slicc-agent-message[data-msg-id="${r}"]`):null;if(!i||i.parentNode!==t){t.insertBefore(e,n);return}let a=i;for(;a.nextSibling instanceof HTMLElement&&a.nextSibling.tagName.toLowerCase()===`slicc-action-row`&&a.nextSibling.dataset.msgId===r;)a=a.nextSibling;t.insertBefore(e,a.nextSibling)}var kN=new Set([`slicc-user-message`,`slicc-lick-card`,`slicc-error-card`,`slicc-delegation-line`,`slicc-day-separator`,`slicc-compaction-marker`]);function AN(e){return e instanceof HTMLElement?kN.has(e.tagName.toLowerCase()):!0}function jN(e){return e instanceof HTMLElement&&e.tagName.toLowerCase()===`slicc-action-row`}function MN(e){return e instanceof HTMLElement&&e.tagName.toLowerCase()===`slicc-agent-message`}function NN(e){let t=[],n=[];for(let r of e)MN(r)?!r.hasAttribute(`data-empty`)&&n.length>0&&(t.push(n),n=[]):jN(r)&&n.push(r);return n.length>0&&t.push(n),t}function PN(e,t){let n=[];for(let r of e){let e=r.dataset.msgId,i=r.dataset.toolId;if(!e||!i)return;let a=t(e,i);if(!a)return;n.push(a)}return n}function FN(e,t){let n=e[0],r=n.parentNode;if(!r)return;let i=new Set(e),a=n.nextSibling;for(;a&&i.has(a);)a=a.nextSibling;let o=n.dataset.msgId,s=wN(e,{open:!!(o&&t.openClusterAnchors.has(o)),toolCalls:t.toolCallLookup?PN(e,t.toolCallLookup):void 0});r.insertBefore(s,a)}function IN(e,t){EN(e,t.openClusterAnchors);let n=Array.from(e.children),r=0;for(;r<n.length;){if(AN(n[r])){r++;continue}let e=r;for(;e<n.length&&!AN(n[e]);)e++;let i=NN(n.slice(r,e));for(let e of i)e.length>=3&&FN(e,t);r=e}t.openClusterAnchors.clear()}function LN(e,t){return e.channel===`sprinkle`&&t?.[2]?.trim()===`gelatiere`}function RN(e){let t=M(e);if(!t)return null;let n=document.createElement(`div`),r=document.createElement(`p`);if(r.textContent=t.headline,n.append(r),t.titles.length>0){let e=document.createElement(`ul`);for(let n of t.titles){let t=document.createElement(`li`);t.textContent=n,e.append(t)}n.append(e)}return n}function zN(e){let t=CM.exec(e.content),n=e.lickCount??1,r=DM.exec(e.content),i=r?OM(r[1]):null,a=LN(e,t),o=a?M(e.content)?.action:void 0,s=kM(`slicc-lick-card`,{kind:a?he:e.channel??`webhook`,"event-label":a?(o??`suggestions`).replace(/^gelatiere-/,``):NM(e.content,e.channel,t,i),collapsible:``,collapsed:``});i&&s.setAttribute(`hue`,RD({isRoot:!1,name:i})),n>1&&s.setAttribute(`count`,String(n)),e.lickState&&e.lickState!==`pending`&&s.setAttribute(`state`,e.lickState);let c=e.lickParts??[e.content];for(let e of c){let t=a?RN(e):null;if(t){s.append(t);continue}let n=document.createElement(`div`);n.innerHTML=bM(TM(e)),s.append(n)}return s}function BN(e){let t=kM(`slicc-delegation-line`,{kind:`feed`,verb:`feed_scoop`,label:AM(e.content.replace(/\*\*\[[^\]]*\]\*\*\s*/,``))}),n=document.createElement(`slicc-user-message`);return n.setBodyHtml(bM(e.content)),[t,n]}var VN=`Out of AI budget`;function HN(){try{return m(p())}catch{return[]}}function UN(e){if(e.resetsAt===null||/reset/i.test(e.message))return e.message;let t=new Date(e.resetsAt);return Number.isNaN(t.getTime())?e.message:`${e.message} Resets on ${t.toLocaleDateString(void 0,{dateStyle:`long`})}.`}function WN(){return HN().length===0?{action:`settings`,"button-label":`Add a provider`}:{action:`change-model`,"button-label":`Switch provider and try again`,"secondary-action":`settings`,"secondary-button-label":`Add a provider`}}function GN(e,t){let n={message:e.content,"message-id":e.id},r=x(e.content);return r&&(n.label=VN,n.message=UN(r)),t?(n[`no-action`]=``,kM(`slicc-error-card`,n)):r?kM(`slicc-error-card`,{...n,...WN()}):(y(e.content)?n.action=`settings`:v(e.content)?n.action=`change-model`:S(e.content)&&(n.action=`login`),kM(`slicc-error-card`,n))}function KN(e){return kM(`slicc-compaction-marker`,{trigger:e.trigger,state:e.state,...e.transcriptPath?{transcript:e.transcriptPath}:{}})}function qN(e,t={}){if(e.compaction)return e.compaction.state===`discarded`?[]:[KN(e.compaction)];if(e.source===`lick`)return[zN(e)];if(e.source===`delegation`||e.channel===`delegation`)return BN(e);if(e.error)return[GN(e,t.readOnly===!0)];if(e.role===`assistant`)return TN(e);let n=EM(e.content);return n?[zN({...e,source:`lick`,channel:n})]:[hN(e)]}function JN(e){let t=[];for(let n of e){let e=n;if(!n.source&&n.role===`user`){let t=EM(n.content);t&&(e={...n,source:`lick`,channel:t})}let r=t[t.length-1];if(!(e.lickId||r?.lickId)&&e.source===`lick`&&r?.source===`lick`&&r.channel===e.channel){r.lickParts=[...r.lickParts??[r.content],e.content],r.lickCount=r.lickParts.length,r.content+=`\n\n${e.content}`;continue}t.push({...e})}return t}function YN(e){return new Date(e).toLocaleDateString(void 0,{weekday:`short`,month:`short`,day:`numeric`})}function XN(e){return kM(`slicc-day-separator`,{label:YN(e)})}function ZN(e,t={}){let n=[],r=``;for(let i of e){let e=new Date(i.timestamp).toDateString();e!==r&&(n.push(XN(i.timestamp)),r=e),n.push(...qN(i,t))}let i=document.createElement(`div`);return i.append(...n),IN(i,{openClusterAnchors:new Set,toolCallLookup:(t,n)=>e.find(e=>e.id===t)?.toolCalls?.find(e=>e.id===n)}),Array.from(i.children)}var QN=`auto`;function $N(e){if(e===null)return null;if(e===`auto`||e===`esc`)return e}var eP=`slicc-shortcuts-style`,tP=`
9121
9121
  /* The sheet grows a column at a time as the viewport allows, and the dialog
9122
9122
  grows with it — one alphabetical column of thirty-odd rows is a reference
9123
9123
  you read; three short labelled ones are a cheat sheet you scan. Capped at
@@ -1 +1 @@
1
- import{t as e}from"./logger-dqckiMJt.js";import t from"./keys-BMebW-sj.js";import{_ as n,f as r,g as i,h as a,m as o,p as s}from"./wc-shell-DUnQ3yem.js";var c=e(`wc-shortcut-config`),l=`/etc/slicc/keys.json`,u=new Set([`Enter`,`Tab`,`Backspace`,`Delete`,`Home`,`End`,`ArrowLeft`,`ArrowRight`,`ArrowUp`,`ArrowDown`]);function d(e){return o.includes(e)?`"${e}" is reserved (Esc toggles the mode; 1-9 address the tab strip)`:[...e].length!==1&&!u.has(e)?`"${e}" is not a key SLICC can bind (use one character, or ${[...u].join(`, `)})`:null}function f(e,t=r){let a={...t},o=[],c=s,l;try{l=JSON.parse(e)}catch(e){return o.push(`not valid JSON, keeping the defaults (${e.message})`),{keymap:a,trigger:c,warnings:o}}let u=l;if(u&&Object.hasOwn(u,`trigger`)){let e=n(u.trigger);e===void 0?o.push(`"trigger": ${JSON.stringify(u.trigger)} is not null, "esc", or "auto"; keeping ${JSON.stringify(s)}`):c=e}let f=u?.bindings;if(f===void 0)return o.push(`no "bindings" object, keeping the defaults`),{keymap:a,trigger:c,warnings:o};if(typeof f!=`object`||!f||Array.isArray(f))return o.push(`"bindings" is not an object, keeping the defaults`),{keymap:a,trigger:c,warnings:o};for(let[e,t]of Object.entries(f)){let n=d(e);if(n){o.push(n);continue}if(t===null||t===!1||t===``){delete a[e];continue}if(!i(t)){o.push(`"${e}": ${JSON.stringify(t)} is not a known command`);continue}a[e]=t}return{keymap:a,trigger:c,warnings:o}}function p(e){let t;try{t=JSON.parse(e)?.bindings}catch{return!1}if(typeof t!=`object`||!t||Array.isArray(t))return!1;let n=Object.entries(t);return n.length===Object.keys(a).length&&n.every(([e,t])=>a[e]===t)}function m(e){return e?.code===`ENOENT`}async function h(e){let n=e.logger??c,r;try{let t=await e.reader.readFile(l,{encoding:`utf-8`});r=typeof t==`string`?t:new TextDecoder().decode(t)}catch(r){if(!m(r)){n.warn(`Could not read the shortcut config; keeping the defaults`,{error:r instanceof Error?r.message:String(r)});return}try{await e.writer.mkdir(`/etc/slicc`,{recursive:!0}),await e.writer.writeFile(l,t),n.info(`Seeded ${l}`)}catch(e){n.warn(`Could not seed the shortcut config`,{error:e instanceof Error?e.message:String(e)})}return}if(p(r))try{await e.writer.writeFile(l,t),n.info(`Replaced the untouched v1 keymap at ${l}`);return}catch(e){n.warn(`Could not replace the v1 shortcut config; keeping it`,{error:e instanceof Error?e.message:String(e)})}let{keymap:i,trigger:a,warnings:o}=f(r);for(let e of o)n.warn(`${l}: ${e}`);e.apply({keymap:i,trigger:a})}async function g(e,n){let r=null;try{let t=await e.reader.readFile(l,{encoding:`utf-8`});r=typeof t==`string`?t:new TextDecoder().decode(t)}catch(e){if(!m(e))throw e}let i;if(r===null)await e.writer.mkdir(`/etc/slicc`,{recursive:!0}),i=JSON.parse(t);else{let e;try{e=JSON.parse(r)}catch(e){throw Error(`${l} is not valid JSON; fix or remove it before changing trigger`,{cause:e})}if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`${l} must be a JSON object`);i=e}i.trigger=n,(typeof i.bindings!=`object`||i.bindings===null||Array.isArray(i.bindings))&&(i.bindings={}),await e.writer.writeFile(l,`${JSON.stringify(i,null,2)}\n`)}export{h as loadShortcutConfig,g as writeShortcutTrigger};
1
+ import{t as e}from"./logger-dqckiMJt.js";import t from"./keys-BMebW-sj.js";import{_ as n,f as r,g as i,h as a,m as o,p as s}from"./wc-shell-Dviry0M3.js";var c=e(`wc-shortcut-config`),l=`/etc/slicc/keys.json`,u=new Set([`Enter`,`Tab`,`Backspace`,`Delete`,`Home`,`End`,`ArrowLeft`,`ArrowRight`,`ArrowUp`,`ArrowDown`]);function d(e){return o.includes(e)?`"${e}" is reserved (Esc toggles the mode; 1-9 address the tab strip)`:[...e].length!==1&&!u.has(e)?`"${e}" is not a key SLICC can bind (use one character, or ${[...u].join(`, `)})`:null}function f(e,t=r){let a={...t},o=[],c=s,l;try{l=JSON.parse(e)}catch(e){return o.push(`not valid JSON, keeping the defaults (${e.message})`),{keymap:a,trigger:c,warnings:o}}let u=l;if(u&&Object.hasOwn(u,`trigger`)){let e=n(u.trigger);e===void 0?o.push(`"trigger": ${JSON.stringify(u.trigger)} is not null, "esc", or "auto"; keeping ${JSON.stringify(s)}`):c=e}let f=u?.bindings;if(f===void 0)return o.push(`no "bindings" object, keeping the defaults`),{keymap:a,trigger:c,warnings:o};if(typeof f!=`object`||!f||Array.isArray(f))return o.push(`"bindings" is not an object, keeping the defaults`),{keymap:a,trigger:c,warnings:o};for(let[e,t]of Object.entries(f)){let n=d(e);if(n){o.push(n);continue}if(t===null||t===!1||t===``){delete a[e];continue}if(!i(t)){o.push(`"${e}": ${JSON.stringify(t)} is not a known command`);continue}a[e]=t}return{keymap:a,trigger:c,warnings:o}}function p(e){let t;try{t=JSON.parse(e)?.bindings}catch{return!1}if(typeof t!=`object`||!t||Array.isArray(t))return!1;let n=Object.entries(t);return n.length===Object.keys(a).length&&n.every(([e,t])=>a[e]===t)}function m(e){return e?.code===`ENOENT`}async function h(e){let n=e.logger??c,r;try{let t=await e.reader.readFile(l,{encoding:`utf-8`});r=typeof t==`string`?t:new TextDecoder().decode(t)}catch(r){if(!m(r)){n.warn(`Could not read the shortcut config; keeping the defaults`,{error:r instanceof Error?r.message:String(r)});return}try{await e.writer.mkdir(`/etc/slicc`,{recursive:!0}),await e.writer.writeFile(l,t),n.info(`Seeded ${l}`)}catch(e){n.warn(`Could not seed the shortcut config`,{error:e instanceof Error?e.message:String(e)})}return}if(p(r))try{await e.writer.writeFile(l,t),n.info(`Replaced the untouched v1 keymap at ${l}`);return}catch(e){n.warn(`Could not replace the v1 shortcut config; keeping it`,{error:e instanceof Error?e.message:String(e)})}let{keymap:i,trigger:a,warnings:o}=f(r);for(let e of o)n.warn(`${l}: ${e}`);e.apply({keymap:i,trigger:a})}async function g(e,n){let r=null;try{let t=await e.reader.readFile(l,{encoding:`utf-8`});r=typeof t==`string`?t:new TextDecoder().decode(t)}catch(e){if(!m(e))throw e}let i;if(r===null)await e.writer.mkdir(`/etc/slicc`,{recursive:!0}),i=JSON.parse(t);else{let e;try{e=JSON.parse(r)}catch(e){throw Error(`${l} is not valid JSON; fix or remove it before changing trigger`,{cause:e})}if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`${l} must be a JSON object`);i=e}i.trigger=n,(typeof i.bindings!=`object`||i.bindings===null||Array.isArray(i.bindings))&&(i.bindings={}),await e.writer.writeFile(l,`${JSON.stringify(i,null,2)}\n`)}export{h as loadShortcutConfig,g as writeShortcutTrigger};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/legacy-styles-CGcVbQni.js","assets/preload-helper-BLdHbfdN.js","assets/sprinkle-manager-el_STA97.js","assets/logger-dqckiMJt.js","assets/feature-flags-DDJdMcuw.js","assets/sprinkle-renderer-C9fr3WHR.js","assets/permissions-surface-registry-CilCRwhh.js","assets/wc-shell-DUnQ3yem.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/dictation-priming-BHJC0hch.js","assets/mime-types-D0xZwlMO.js","assets/base64-ELzoYfwP.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-CEqw_XTp.js","assets/core-BXRpM6QF.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/proxied-fetch-2sdz8vNB.js","assets/api-endpoint-CNqFa-M3.js","assets/secret-topology-BuXN_6_0.js","assets/secrets-bridge-client-BD4AHTxg.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/image-markers-4eaAm9QS.js","assets/stored-accounts-CdMZdZUa.js","assets/providers-DUsi8UJy.js","assets/renamed-providers-d0bAaa0l.js","assets/bedrock-camp-compat-D6dUCn_T.js","assets/bedrock-camp-extra-models-COVvjLB5.js","assets/claude-model-version-3MWQoaco.js","assets/sha256-DynDhwRL.js","assets/telemetry-kqkj0A7x.js","assets/GELATIERE-CLK_MA5a.js","assets/types-D8gIX-W-.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-Bn0sfTur.js","assets/message-envelope-BPSSjJbW.js","assets/agent-message-to-chat-BiZHDYFR.js","assets/wc-shell-WkeczD9x.css","assets/hid-device-registry-B2R-0rNt.js","assets/serial-port-registry-CCqklAEr.js","assets/hid-operations-C97SZtrY.js","assets/usb-device-registry--JwKRTYp.js","assets/usb-operations-Dx9QXlZ0.js","assets/shared-DSEuryGJ.js","assets/theme-CmogKzdP.js","assets/theme-engine-CwaY1aIr.js","assets/bounded-walk-BjxKWNqp.js","assets/path-utils-DNJG-zQf.js","assets/sprinkle-instances-B8n7h-oP.js","assets/setup-sprinkle-exec-CdgElwNt.js","assets/wc-live-mNieNNOh.js","assets/zip-stream-DZF8sKOl.js","assets/transcript-export-DTRO8k03.js","assets/tray-follower-status-BAjnN7Ar.js","assets/main-CN0eXvpe.js","assets/clipboard-eqmn97SP.js","assets/provider-budget-LCzMPlKv.js","assets/browser-OXhgs9Cl.js","assets/tray-leader-WA8nmGPu.js","assets/db-CIXZItfi.js","assets/sessions-Bd6uu3F5.js","assets/types-CFfBWsH5.js","assets/store-DP4F8FwF.js","assets/entries-ChYQ3OMf.js","assets/frozen-archive-writer-d8c53vzV.js","assets/frozen-session-identity-D__hHRHh.js","assets/session-jsonl-CJO46TfW.js","assets/snapshot-store-DYh_oG7o.js","assets/live-session-curation-zfkDVdK3.js","assets/MEMORY-B9cGngY_.js","assets/thinking-level-DCJktR5U.js","assets/profile-export-deps-BE2w_fD3.js","assets/global-db-CbuLl-zx.js","assets/wc-unit-context-DDyqslj4.js","assets/quick-llm-BgX8DGOf.js","assets/llm-session-id-bZQs6gBN.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-BLdHbfdN.js";import{p as t}from"./api-endpoint-CNqFa-M3.js";import{t as n}from"./lick-target-match-mT46VVD2.js";import{G as r}from"./wc-shell-DUnQ3yem.js";import{c as i,n as a,o,s,t as c}from"./wc-unit-context-DDyqslj4.js";var l=`sprinkle:`,u=`slicc-sprinkle-icons`;function d(){try{let e=localStorage.getItem(u);if(!e)return{};let t=JSON.parse(e);if(typeof t!=`object`||!t)return{};let n={};for(let[e,r]of Object.entries(t))typeof r==`string`&&(n[e]=r);return n}catch{return{}}}function f(e){try{let t=new Set(e),n=Object.fromEntries(Object.entries(d()).filter(([e])=>t.has(e)));localStorage.setItem(u,JSON.stringify(n))}catch{}}function p(e,t){try{localStorage.setItem(u,JSON.stringify({...d(),[e]:t}))}catch{}}function m(e){return typeof e==`string`&&/^[a-z0-9]+(-[a-z0-9]+)*$/.test(e)}function h(e){return`${l}${e}`}function g(e){return e?.startsWith(l)?e.slice(9):null}var _=`chat`,v=new Set([`files`,`term`,`memory`,`monitor`]),y=`right`,b=y;function x(e){return v.has(e)}var S=class{#e;#t=new Map;#n=new Map;#r=new Set;#i=[];#a;constructor(e,t={}){this.#e=e,this.#a=t}#o(){return this.#e.dockTree}applyLayout(e){let t=this.#o();t?.setTree(e);for(let e of this.#i)t?.placeSurface(h(e),b)}placeSurface(e,t){let n=this.#o();if(n&&!this.#a.hostSprinkleSurface)for(let e of n.getSurfaceIds())e!==t&&e!==`chat`&&this.removeSurface(e);if(n?.placeSurface(t,e),!this.#a.hostSprinkleSurface){let e=this.#e.dock;e&&(e.active=t)}x(t)&&this.#a.onToolPanelActivate?.(t)}moveSurfaceToZone(e,t){this.#o()?.moveSurfaceToZone(e,t)}removeSurface(e){this.#o()?.removeSurface(e),x(e)&&this.#a.onToolPanelDeactivate?.(e)}setSurfaceSize(e,t){return this.#o()?.setSurfaceSize(e,t)??!1}seedDockItems(e){let t=d(),n=!1;for(let r of e)this.#t.has(r)||(this.#r.add(r),this.#t.set(r,{id:h(r),icon:t[r]??`sparkles`,label:r,kind:`sprinkle`}),n=!0);n&&this.#p()}dropUnconfirmedSeeds(){let e=!1;for(let t of this.#r)this.#n.has(t)||(this.#t.delete(t),e=!0);this.#r.clear(),e&&this.#p()}callbacks(){return{addSprinkle:(e,t,n,r,i)=>this.#s(e,t,n,i),removeSprinkle:e=>this.#c(e,{keepDockItem:!1}),minimizeSprinkle:e=>this.#l(e),registerSprinkle:(e,t,n)=>this.#u(e,t,n?.icon),unregisterSprinkle:e=>this.#f(e),closeSprinkleContent:e=>this.#c(e,{keepDockItem:!0})}}updateDockIcon(e,t){let n=this.#t.get(e);n&&n.icon!==t&&(this.#t.set(e,{...n,icon:t}),this.#p())}defaultIconNames(){return[...this.#t.entries()].filter(([,e])=>e.icon===`sparkles`).map(([e])=>e)}isOpen(e){return this.#n.has(e)}#s(e,t,n,r){let i=h(e),a=this.#a.hostSprinkleSurface,o=this.#n.get(e),s=!o;if(o||(o=document.createElement(`slicc-surface`),o.setAttribute(`surface-id`,i),o.setAttribute(`layout`,`flex`),a||this.#e.dockTree?.append(o),this.#n.set(e,o)),o.replaceChildren(n),this.#u(e,t,r?.icon),this.#i.includes(e)||this.#i.push(e),a){s&&a(i,o);return}r?.attention||r?.background||this.placeSurface(b,i)}#c(e,t){let n=h(e);this.#n.get(e)?.remove(),this.#n.delete(e),t.keepDockItem||this.#t.delete(e);let r=this.#i.indexOf(e);if(r>=0&&this.#i.splice(r,1),this.#p(),this.#a.removeSprinkleSurface){this.#a.removeSprinkleSurface(n);return}this.#e.dockTree?.removeSurface(n)}#l(e){this.#e.dock.removeAttribute(`active`),!this.#a.hostSprinkleSurface&&this.removeSurface(h(e))}#u(e,t,n){this.#r.delete(e);let r=this.#d(e,n);this.#t.set(e,{id:h(e),icon:r,label:t,kind:`sprinkle`}),this.#p()}#d(e,t){return m(t)?t:d()[e]??`sparkles`}#f(e){this.#n.has(e)||(this.#t.delete(e),this.#p())}#p(){this.#e.dock.items=[...this.#t.values()]}};function C(e,t){return(n,r)=>{if(n.type===`sprinkle`&&n.sprinkleName&&!t?.(n)){if(r){e.sendSprinkleLick(n.sprinkleName,n.body,n.targetScoop,{unitJid:r});return}e.sendSprinkleLick(n.sprinkleName,n.body,n.targetScoop)}}}var w=180;function T(e){e.dock.addEventListener(`slicc-dock-longpress`,t=>{let n=t.detail?.id;if(!n||g(n)===null&&!x(n))return;let i=t=>{r(e.frame??e.dockTree,n)||t<=0||requestAnimationFrame(()=>i(t-1))};i(w)})}function E(e,t){return n=>s(e.getUnits(),n,e.getSelected()?.id,t,()=>c(e.refs.inputCard))}async function D(r){let{refs:s,client:c,fs:l,instanceId:u,onAttachImage:d,onToolPanelActivate:p,onToolPanelDeactivate:m,hostSprinkleSurface:h,removeSprinkleSurface:_,log:v}=r,b=new S(s,{onToolPanelActivate:p,onToolPanelDeactivate:m,hostSprinkleSurface:h,removeSprinkleSurface:_}),{loadSprinkleStyles:w}=await e(async()=>{let{loadSprinkleStyles:e}=await import(`./legacy-styles-CGcVbQni.js`);return{loadSprinkleStyles:e}},__vite__mapDeps([0,1]));await w();let{SprinkleManager:D,readKnownSprinkleNames:k}=await e(async()=>{let{SprinkleManager:e,readKnownSprinkleNames:t}=await import(`./sprinkle-manager-el_STA97.js`);return{SprinkleManager:e,readKnownSprinkleNames:t}},__vite__mapDeps([2,3,4,5,1,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]));b.seedDockItems(k());let{installSprinkleManagerHandlerOverChannel:A}=await e(async()=>{let{installSprinkleManagerHandlerOverChannel:e}=await import(`./sprinkle-bridge-channel-DTP5IbJB.js`);return{installSprinkleManagerHandlerOverChannel:e}},[]),{createSprinkleExecHandler:j}=await e(async()=>{let{createSprinkleExecHandler:e}=await import(`./setup-sprinkle-exec-CdgElwNt.js`);return{createSprinkleExecHandler:e}},__vite__mapDeps([49,1])),{setDipExecHandler:M}=await e(async()=>{let{setDipExecHandler:e}=await import(`./wc-live-mNieNNOh.js`).then(e=>e.H);return{setDipExecHandler:e}},__vite__mapDeps([50,8,3,14,1,15,16,4,17,11,18,19,20,21,22,9,5,6,7,10,12,13,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73])),N=t(),P=j(c),F=r.selectScoop,I=new D(l,C(c,r.interceptWelcomeLick),b.callbacks(),()=>{let e=a(r.getUnits());e&&c.stopScoop(e.id)},{...N?{autoOpenBehavior:`attention`}:{},inlineSprinkles:new Set([`welcome`]),execHandler:P,onAttachImage:d??(()=>{}),resolveLickOriginUnitId:e=>n(r.getUnits(),e)?.id,selectedScoopHandler:()=>i(r.getUnits(),r.getSelected()?.id),...F?{selectScoopHandler:E(r,F)}:{}});if(window.__slicc_sprinkleManager=I,M(P),u!==void 0){let e=A(I,{instanceId:u});window.addEventListener(`beforeunload`,()=>e(),{once:!0})}else if(N){let{handleSprinkleOp:t}=await e(async()=>{let{handleSprinkleOp:e}=await import(`./sprinkle-op-handler-DyRlIvAg.js`);return{handleSprinkleOp:e}},[]);c.setSprinkleOpHandler(e=>{let{id:n,op:r,name:i,data:a,target:o,openOptions:s}=e;t(I,n,r,i,a,o,s)})}s.dock.addEventListener(`slicc-dock-select`,e=>{let t=e.detail?.id,n=g(t);if(n){let e=o(r.getUnits(),r.getSelected());(e?I.activate(n,void 0,{lickOriginTarget:e.folder}):I.activate(n)).catch(e=>v.error(`WC sprinkle activate failed`,e));return}t&&x(t)&&b.placeSurface(y,t)}),s.dock.addEventListener(`slicc-dock-collapse`,e=>{let t=e.detail?.id;if(!t)return;if(x(t)){b.removeSurface(t);return}let n=g(t);n&&I.minimize(n)}),T(s);let L=!1,R=async()=>{if(await I.refresh(),I.available().length>0){b.dropUnconfirmedSeeds();let t=I.available().map(e=>e.name),{pruneKnownSprinkleNames:n}=await e(async()=>{let{pruneKnownSprinkleNames:e}=await import(`./sprinkle-manager-el_STA97.js`);return{pruneKnownSprinkleNames:e}},__vite__mapDeps([2,3,4,5,1,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]));n(t),f(t)}await I.restoreOpenSprinkles().catch(e=>{v.warn(`WC shell: failed to restore open sprinkles`,e)}),L||(L=!0,e(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-BgX8DGOf.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([74,8,3,14,1,15,16,4,17,11,18,19,20,21,22,13,23,24,25,26,27,28,75,34])).then(({pickLucideIcon:e})=>O(b,I.available(),t=>e({subject:t}))).catch(()=>void 0).finally(()=>{L=!1}))};return R().catch(e=>v.warn(`WC shell: initial sprinkle resync failed`,e)),{manager:I,zone:b,resync:R}}async function O(e,t,n){let r=new Set(e.defaultIconNames()),i=d();for(let a of t){if(!r.has(a.name)||m(a.icon))continue;let t=i[a.name];if(t){e.updateDockIcon(a.name,t);continue}let o=await n(`"${a.title}" — a SLICC sprinkle panel (${a.name})`);o&&(p(a.name,o),e.updateDockIcon(a.name,o))}}export{_ as CHAT_SURFACE_ID,S as WcSprinkleZone,D as wireWcSprinkles};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/legacy-styles-CGcVbQni.js","assets/preload-helper-BLdHbfdN.js","assets/sprinkle-manager-CMAEGvh9.js","assets/logger-dqckiMJt.js","assets/feature-flags-DDJdMcuw.js","assets/sprinkle-renderer-DcsYmznT.js","assets/permissions-surface-registry-CilCRwhh.js","assets/wc-shell-Dviry0M3.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/dictation-priming-BHJC0hch.js","assets/mime-types-D0xZwlMO.js","assets/base64-ELzoYfwP.js","assets/bridge-protocol-C52CnDIj.js","assets/account-store-CbKQrU_A.js","assets/core-BXRpM6QF.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/proxied-fetch-2sdz8vNB.js","assets/api-endpoint-CNqFa-M3.js","assets/secret-topology-BuXN_6_0.js","assets/secrets-bridge-client-BD4AHTxg.js","assets/panel-rpc-accessor-B4BfPLSo.js","assets/image-markers-4eaAm9QS.js","assets/stored-accounts-CdMZdZUa.js","assets/providers-s2pRjrQo.js","assets/renamed-providers-d0bAaa0l.js","assets/bedrock-camp-compat-D6dUCn_T.js","assets/bedrock-camp-extra-models-COVvjLB5.js","assets/claude-model-version-3MWQoaco.js","assets/sha256-DynDhwRL.js","assets/telemetry-kqkj0A7x.js","assets/GELATIERE-CLK_MA5a.js","assets/types-D8gIX-W-.js","assets/same-file-identity-DuEcSmPX.js","assets/icons-Bn0sfTur.js","assets/message-envelope-BPSSjJbW.js","assets/agent-message-to-chat-BiZHDYFR.js","assets/wc-shell-WkeczD9x.css","assets/hid-device-registry-B2R-0rNt.js","assets/serial-port-registry-CCqklAEr.js","assets/hid-operations-C97SZtrY.js","assets/usb-device-registry--JwKRTYp.js","assets/usb-operations-Dx9QXlZ0.js","assets/shared-DSEuryGJ.js","assets/theme-CmogKzdP.js","assets/theme-engine-CwaY1aIr.js","assets/bounded-walk-BjxKWNqp.js","assets/path-utils-DNJG-zQf.js","assets/sprinkle-instances-B8n7h-oP.js","assets/setup-sprinkle-exec-CdgElwNt.js","assets/wc-live-jfkgv1D5.js","assets/zip-stream-DZF8sKOl.js","assets/transcript-export-DTRO8k03.js","assets/tray-follower-status-BAjnN7Ar.js","assets/main-C8hdX5_E.js","assets/clipboard-eqmn97SP.js","assets/provider-budget-LCzMPlKv.js","assets/browser-OXhgs9Cl.js","assets/tray-leader-x0HDgpHa.js","assets/db-CIXZItfi.js","assets/sessions-Bd6uu3F5.js","assets/types-CFfBWsH5.js","assets/store-DP4F8FwF.js","assets/entries-ChYQ3OMf.js","assets/frozen-archive-writer-d8c53vzV.js","assets/frozen-session-identity-D__hHRHh.js","assets/session-jsonl-CJO46TfW.js","assets/snapshot-store-DYh_oG7o.js","assets/live-session-curation-BB61f9E8.js","assets/MEMORY-B9cGngY_.js","assets/thinking-level-DCJktR5U.js","assets/profile-export-deps-BE2w_fD3.js","assets/global-db-CbuLl-zx.js","assets/wc-unit-context-DDyqslj4.js","assets/quick-llm-DcceQmkj.js","assets/llm-session-id-bZQs6gBN.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-BLdHbfdN.js";import{p as t}from"./api-endpoint-CNqFa-M3.js";import{t as n}from"./lick-target-match-mT46VVD2.js";import{G as r}from"./wc-shell-Dviry0M3.js";import{c as i,n as a,o,s,t as c}from"./wc-unit-context-DDyqslj4.js";var l=`sprinkle:`,u=`slicc-sprinkle-icons`;function d(){try{let e=localStorage.getItem(u);if(!e)return{};let t=JSON.parse(e);if(typeof t!=`object`||!t)return{};let n={};for(let[e,r]of Object.entries(t))typeof r==`string`&&(n[e]=r);return n}catch{return{}}}function f(e){try{let t=new Set(e),n=Object.fromEntries(Object.entries(d()).filter(([e])=>t.has(e)));localStorage.setItem(u,JSON.stringify(n))}catch{}}function p(e,t){try{localStorage.setItem(u,JSON.stringify({...d(),[e]:t}))}catch{}}function m(e){return typeof e==`string`&&/^[a-z0-9]+(-[a-z0-9]+)*$/.test(e)}function h(e){return`${l}${e}`}function g(e){return e?.startsWith(l)?e.slice(9):null}var _=`chat`,v=new Set([`files`,`term`,`memory`,`monitor`]),y=`right`,b=y;function x(e){return v.has(e)}var S=class{#e;#t=new Map;#n=new Map;#r=new Set;#i=[];#a;constructor(e,t={}){this.#e=e,this.#a=t}#o(){return this.#e.dockTree}applyLayout(e){let t=this.#o();t?.setTree(e);for(let e of this.#i)t?.placeSurface(h(e),b)}placeSurface(e,t){let n=this.#o();if(n&&!this.#a.hostSprinkleSurface)for(let e of n.getSurfaceIds())e!==t&&e!==`chat`&&this.removeSurface(e);if(n?.placeSurface(t,e),!this.#a.hostSprinkleSurface){let e=this.#e.dock;e&&(e.active=t)}x(t)&&this.#a.onToolPanelActivate?.(t)}moveSurfaceToZone(e,t){this.#o()?.moveSurfaceToZone(e,t)}removeSurface(e){this.#o()?.removeSurface(e),x(e)&&this.#a.onToolPanelDeactivate?.(e)}setSurfaceSize(e,t){return this.#o()?.setSurfaceSize(e,t)??!1}seedDockItems(e){let t=d(),n=!1;for(let r of e)this.#t.has(r)||(this.#r.add(r),this.#t.set(r,{id:h(r),icon:t[r]??`sparkles`,label:r,kind:`sprinkle`}),n=!0);n&&this.#p()}dropUnconfirmedSeeds(){let e=!1;for(let t of this.#r)this.#n.has(t)||(this.#t.delete(t),e=!0);this.#r.clear(),e&&this.#p()}callbacks(){return{addSprinkle:(e,t,n,r,i)=>this.#s(e,t,n,i),removeSprinkle:e=>this.#c(e,{keepDockItem:!1}),minimizeSprinkle:e=>this.#l(e),registerSprinkle:(e,t,n)=>this.#u(e,t,n?.icon),unregisterSprinkle:e=>this.#f(e),closeSprinkleContent:e=>this.#c(e,{keepDockItem:!0})}}updateDockIcon(e,t){let n=this.#t.get(e);n&&n.icon!==t&&(this.#t.set(e,{...n,icon:t}),this.#p())}defaultIconNames(){return[...this.#t.entries()].filter(([,e])=>e.icon===`sparkles`).map(([e])=>e)}isOpen(e){return this.#n.has(e)}#s(e,t,n,r){let i=h(e),a=this.#a.hostSprinkleSurface,o=this.#n.get(e),s=!o;if(o||(o=document.createElement(`slicc-surface`),o.setAttribute(`surface-id`,i),o.setAttribute(`layout`,`flex`),a||this.#e.dockTree?.append(o),this.#n.set(e,o)),o.replaceChildren(n),this.#u(e,t,r?.icon),this.#i.includes(e)||this.#i.push(e),a){s&&a(i,o);return}r?.attention||r?.background||this.placeSurface(b,i)}#c(e,t){let n=h(e);this.#n.get(e)?.remove(),this.#n.delete(e),t.keepDockItem||this.#t.delete(e);let r=this.#i.indexOf(e);if(r>=0&&this.#i.splice(r,1),this.#p(),this.#a.removeSprinkleSurface){this.#a.removeSprinkleSurface(n);return}this.#e.dockTree?.removeSurface(n)}#l(e){this.#e.dock.removeAttribute(`active`),!this.#a.hostSprinkleSurface&&this.removeSurface(h(e))}#u(e,t,n){this.#r.delete(e);let r=this.#d(e,n);this.#t.set(e,{id:h(e),icon:r,label:t,kind:`sprinkle`}),this.#p()}#d(e,t){return m(t)?t:d()[e]??`sparkles`}#f(e){this.#n.has(e)||(this.#t.delete(e),this.#p())}#p(){this.#e.dock.items=[...this.#t.values()]}};function C(e,t){return(n,r)=>{if(n.type===`sprinkle`&&n.sprinkleName&&!t?.(n)){if(r){e.sendSprinkleLick(n.sprinkleName,n.body,n.targetScoop,{unitJid:r});return}e.sendSprinkleLick(n.sprinkleName,n.body,n.targetScoop)}}}var w=180;function T(e){e.dock.addEventListener(`slicc-dock-longpress`,t=>{let n=t.detail?.id;if(!n||g(n)===null&&!x(n))return;let i=t=>{r(e.frame??e.dockTree,n)||t<=0||requestAnimationFrame(()=>i(t-1))};i(w)})}function E(e,t){return n=>s(e.getUnits(),n,e.getSelected()?.id,t,()=>c(e.refs.inputCard))}async function D(r){let{refs:s,client:c,fs:l,instanceId:u,onAttachImage:d,onToolPanelActivate:p,onToolPanelDeactivate:m,hostSprinkleSurface:h,removeSprinkleSurface:_,log:v}=r,b=new S(s,{onToolPanelActivate:p,onToolPanelDeactivate:m,hostSprinkleSurface:h,removeSprinkleSurface:_}),{loadSprinkleStyles:w}=await e(async()=>{let{loadSprinkleStyles:e}=await import(`./legacy-styles-CGcVbQni.js`);return{loadSprinkleStyles:e}},__vite__mapDeps([0,1]));await w();let{SprinkleManager:D,readKnownSprinkleNames:k}=await e(async()=>{let{SprinkleManager:e,readKnownSprinkleNames:t}=await import(`./sprinkle-manager-CMAEGvh9.js`);return{SprinkleManager:e,readKnownSprinkleNames:t}},__vite__mapDeps([2,3,4,5,1,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]));b.seedDockItems(k());let{installSprinkleManagerHandlerOverChannel:A}=await e(async()=>{let{installSprinkleManagerHandlerOverChannel:e}=await import(`./sprinkle-bridge-channel-DTP5IbJB.js`);return{installSprinkleManagerHandlerOverChannel:e}},[]),{createSprinkleExecHandler:j}=await e(async()=>{let{createSprinkleExecHandler:e}=await import(`./setup-sprinkle-exec-CdgElwNt.js`);return{createSprinkleExecHandler:e}},__vite__mapDeps([49,1])),{setDipExecHandler:M}=await e(async()=>{let{setDipExecHandler:e}=await import(`./wc-live-jfkgv1D5.js`).then(e=>e.H);return{setDipExecHandler:e}},__vite__mapDeps([50,8,3,14,1,15,16,4,17,11,18,19,20,21,22,9,5,6,7,10,12,13,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73])),N=t(),P=j(c),F=r.selectScoop,I=new D(l,C(c,r.interceptWelcomeLick),b.callbacks(),()=>{let e=a(r.getUnits());e&&c.stopScoop(e.id)},{...N?{autoOpenBehavior:`attention`}:{},inlineSprinkles:new Set([`welcome`]),execHandler:P,onAttachImage:d??(()=>{}),resolveLickOriginUnitId:e=>n(r.getUnits(),e)?.id,selectedScoopHandler:()=>i(r.getUnits(),r.getSelected()?.id),...F?{selectScoopHandler:E(r,F)}:{}});if(window.__slicc_sprinkleManager=I,M(P),u!==void 0){let e=A(I,{instanceId:u});window.addEventListener(`beforeunload`,()=>e(),{once:!0})}else if(N){let{handleSprinkleOp:t}=await e(async()=>{let{handleSprinkleOp:e}=await import(`./sprinkle-op-handler-DyRlIvAg.js`);return{handleSprinkleOp:e}},[]);c.setSprinkleOpHandler(e=>{let{id:n,op:r,name:i,data:a,target:o,openOptions:s}=e;t(I,n,r,i,a,o,s)})}s.dock.addEventListener(`slicc-dock-select`,e=>{let t=e.detail?.id,n=g(t);if(n){let e=o(r.getUnits(),r.getSelected());(e?I.activate(n,void 0,{lickOriginTarget:e.folder}):I.activate(n)).catch(e=>v.error(`WC sprinkle activate failed`,e));return}t&&x(t)&&b.placeSurface(y,t)}),s.dock.addEventListener(`slicc-dock-collapse`,e=>{let t=e.detail?.id;if(!t)return;if(x(t)){b.removeSurface(t);return}let n=g(t);n&&I.minimize(n)}),T(s);let L=!1,R=async()=>{if(await I.refresh(),I.available().length>0){b.dropUnconfirmedSeeds();let t=I.available().map(e=>e.name),{pruneKnownSprinkleNames:n}=await e(async()=>{let{pruneKnownSprinkleNames:e}=await import(`./sprinkle-manager-CMAEGvh9.js`);return{pruneKnownSprinkleNames:e}},__vite__mapDeps([2,3,4,5,1,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]));n(t),f(t)}await I.restoreOpenSprinkles().catch(e=>{v.warn(`WC shell: failed to restore open sprinkles`,e)}),L||(L=!0,e(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-DcceQmkj.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([74,8,3,14,1,15,16,4,17,11,18,19,20,21,22,13,23,24,25,26,27,28,75,34])).then(({pickLucideIcon:e})=>O(b,I.available(),t=>e({subject:t}))).catch(()=>void 0).finally(()=>{L=!1}))};return R().catch(e=>v.warn(`WC shell: initial sprinkle resync failed`,e)),{manager:I,zone:b,resync:R}}async function O(e,t,n){let r=new Set(e.defaultIconNames()),i=d();for(let a of t){if(!r.has(a.name)||m(a.icon))continue;let t=i[a.name];if(t){e.updateDockIcon(a.name,t);continue}let o=await n(`"${a.title}" — a SLICC sprinkle panel (${a.name})`);o&&(p(a.name,o),e.updateDockIcon(a.name,o))}}export{_ as CHAT_SURFACE_ID,S as WcSprinkleZone,D as wireWcSprinkles};