sliccy 6.87.3 → 6.89.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) hide show
  1. package/README.md +1 -1
  2. package/dist/node-server/hostfs.d.ts +58 -0
  3. package/dist/node-server/hostfs.js +257 -0
  4. package/dist/node-server/index.js +10 -0
  5. package/dist/node-server/runtime-flags.d.ts +22 -0
  6. package/dist/node-server/runtime-flags.js +78 -2
  7. package/dist/ui/.vite/manifest.json +540 -449
  8. package/dist/ui/assets/CLAUDE-4LHXSyPA.js +1 -0
  9. package/dist/ui/assets/CLAUDE-Bio4HPGK.js +1 -0
  10. package/dist/ui/assets/MEMORY-6FXnIBfJ.js +135 -0
  11. package/dist/ui/assets/SKILL-BKUxKc7f.js +296 -0
  12. package/dist/ui/assets/SKILL-BKyxMoME.js +1 -0
  13. package/dist/ui/assets/SKILL-BcELX5TL.js +1 -0
  14. package/dist/ui/assets/SKILL-Bd5ykLEh.js +1 -0
  15. package/dist/ui/assets/SKILL-Bt-RhG0L.js +1 -0
  16. package/dist/ui/assets/SKILL-CED8RXQP.js +69 -0
  17. package/dist/ui/assets/SKILL-CNdAIhbb.js +1 -0
  18. package/dist/ui/assets/SKILL-CcMg6eqt.js +1 -0
  19. package/dist/ui/assets/SKILL-Ch-cOl61.js +1 -0
  20. package/dist/ui/assets/SKILL-CkfptFag.js +132 -0
  21. package/dist/ui/assets/SKILL-Ckg2XbSL.js +114 -0
  22. package/dist/ui/assets/SKILL-D40-t9w0.js +57 -0
  23. package/dist/ui/assets/SKILL-D4YtbN6n.js +1 -0
  24. package/dist/ui/assets/SKILL-DFKKFkzD.js +96 -0
  25. package/dist/ui/assets/SKILL-DJ815vTN.js +62 -0
  26. package/dist/ui/assets/SKILL-DLXzwsY4.js +1 -0
  27. package/dist/ui/assets/SKILL-DXIigmDy.js +35 -0
  28. package/dist/ui/assets/SKILL-DfSluXpV.js +385 -0
  29. package/dist/ui/assets/SKILL-DhKtVqb-.js +1 -0
  30. package/dist/ui/assets/SKILL-FnBxPcDX.js +1 -0
  31. package/dist/ui/assets/SKILL-HEHb9hIB.js +1 -0
  32. package/dist/ui/assets/SKILL-oOIS8LAm.js +1 -0
  33. package/dist/ui/assets/{account-store-DysucxMw.js → account-store-Bo-yhxpr.js} +4 -4
  34. package/dist/ui/assets/{account-store-Cy3TJKnu.js → account-store-CYz2dZdk.js} +2 -2
  35. package/dist/ui/assets/adobe-BABx4YQD.js +1 -0
  36. package/dist/ui/assets/adobe-DFu35kBc.js +2 -0
  37. package/dist/ui/assets/{angular-html-Cm4-xod0.js → angular-html-aPuBvESs.js} +1 -1
  38. package/dist/ui/assets/{angular-ts-Dopuir71.js → angular-ts-ocjSXnvf.js} +1 -1
  39. package/dist/ui/assets/anthropic-messages-CpSojOI8.js +39 -0
  40. package/dist/ui/assets/anthropic-messages-DbPJ2ji9.js +39 -0
  41. package/dist/ui/assets/api-endpoint-C00IT5T9.js +1 -0
  42. package/dist/ui/assets/api-endpoint-GRCyib6X.js +1 -0
  43. package/dist/ui/assets/{apply-layout-TIXzvNTN.js → apply-layout-DtjqLMjP.js} +1 -1
  44. package/dist/ui/assets/{apps-e--FORGt.js → apps-CvbmIZii.js} +1 -1
  45. package/dist/ui/assets/{astro-E_b8esPp.js → astro-go1PgQEf.js} +1 -1
  46. package/dist/ui/assets/auto-mount-table-CdyPAwVL.js +1 -0
  47. package/dist/ui/assets/{azure-openai-mDyNL8OK.js → azure-openai-C47c28Th.js} +2 -2
  48. package/dist/ui/assets/{azure-openai-C5josrBb.js → azure-openai-Dn30Odmd.js} +2 -2
  49. package/dist/ui/assets/azure-openai-responses-BcoOaRCx.js +1 -0
  50. package/dist/ui/assets/azure-openai-responses-DUMDrZ29.js +1 -0
  51. package/dist/ui/assets/backend-hostfs-Com-zF5W.js +1 -0
  52. package/dist/ui/assets/backend-hostfs-bQQx-S0W.js +1 -0
  53. package/dist/ui/assets/bedrock-camp-BcJEC3Pg.js +1 -0
  54. package/dist/ui/assets/bedrock-camp-LeceEQbU.js +1 -0
  55. package/dist/ui/assets/bedrock-camp-compat-CYnC9BQI.js +1 -0
  56. package/dist/ui/assets/bedrock-camp-compat-CgBMwna8.js +1 -0
  57. package/dist/ui/assets/{blade-mj2TcBTp.js → blade-DPPr6MF0.js} +1 -1
  58. package/dist/ui/assets/catppuccin-frappe-C9Q5zVZY.js +1 -0
  59. package/dist/ui/assets/catppuccin-latte-CtsyrtPq.js +1 -0
  60. package/dist/ui/assets/catppuccin-macchiato-R8nAf1vR.js +1 -0
  61. package/dist/ui/assets/catppuccin-mocha-DjuaAJKi.js +1 -0
  62. package/dist/ui/assets/cerebras-B2bBHcWG.js +1 -0
  63. package/dist/ui/assets/cerebras-DWI7o4tY.js +1 -0
  64. package/dist/ui/assets/chime-CPc6qSh5.js +1 -0
  65. package/dist/ui/assets/claude-model-version-Csn7RPVg.js +1 -0
  66. package/dist/ui/assets/claude-model-version-DoVrYsKi.js +2 -0
  67. package/dist/ui/assets/{client-BTUV7dbh.js → client-DVC0x03n.js} +1 -1
  68. package/dist/ui/assets/{composer-speech-SNeD5SER.js → composer-speech-Cy4g3lh3.js} +1 -1
  69. package/dist/ui/assets/connect-llm-FevTa-aV.js +561 -0
  70. package/dist/ui/assets/{connect-surface-DqU2NC2c.js → connect-surface-Dd462OJJ.js} +1 -1
  71. package/dist/ui/assets/cpp-Ct9pQPqT.js +1 -0
  72. package/dist/ui/assets/{css-vJJohHMc.js → css-DlBQoFxe.js} +1 -1
  73. package/dist/ui/assets/db-DSIYsBgP.js +1 -0
  74. package/dist/ui/assets/db-cKsBsMMN.js +1 -0
  75. package/dist/ui/assets/discovery-preference-__0HPYJC.js +1 -0
  76. package/dist/ui/assets/dist-B4LJzMVB.js +1547 -0
  77. package/dist/ui/assets/{ensure-speech-assets-DvFwJX-M.js → ensure-speech-assets-CKwQ54O1.js} +1 -1
  78. package/dist/ui/assets/float-topology-DiK91BlA.js +1 -0
  79. package/dist/ui/assets/{follower-navigate-watcher-CNC7ybEv.js → follower-navigate-watcher-Dz-52eZY.js} +1 -1
  80. package/dist/ui/assets/fs-BHEdp-e-.js +1 -0
  81. package/dist/ui/assets/fs-MCOH5KUJ.js +2 -0
  82. package/dist/ui/assets/github-BbQO4O_c.js +2 -0
  83. package/dist/ui/assets/github-C-f5ThxJ.js +1 -0
  84. package/dist/ui/assets/github-copilot-DXrDbEzB.js +1 -0
  85. package/dist/ui/assets/github-copilot-Du-Z6Dmn.js +2 -0
  86. package/dist/ui/assets/{github-install-CFJLPySf.js → github-install-DbrQX7SM.js} +1 -1
  87. package/dist/ui/assets/{github-zip-C7dhlRG8.js → github-zip-BRYnSLKK.js} +1 -1
  88. package/dist/ui/assets/{go-BJwz_mda.js → go-rLFTqkRN.js} +1 -1
  89. package/dist/ui/assets/google-generative-ai-Dxo91M3n.js +1 -0
  90. package/dist/ui/assets/google-generative-ai-Rjh7hNBV.js +1 -0
  91. package/dist/ui/assets/{google-shared-BMJ_JErv.js → google-shared-CzJgTu-P.js} +3 -3
  92. package/dist/ui/assets/{google-shared-YqcyR4cm.js → google-shared-DQJPCU3d.js} +3 -3
  93. package/dist/ui/assets/google-vertex-61Jj0dk6.js +1 -0
  94. package/dist/ui/assets/google-vertex-DEwkNZJm.js +1 -0
  95. package/dist/ui/assets/{haml-DboNpPfQ.js → haml-Bqgi1Cau.js} +1 -1
  96. package/dist/ui/assets/{handlebars-Bv_jLwHk.js → handlebars-JgcNzdBj.js} +1 -1
  97. package/dist/ui/assets/{hear-D33CHppO.js → hear-BqNAK8-P.js} +1 -1
  98. package/dist/ui/assets/{horizon-bright-Br1oVSNq.js → horizon-bright-DSNQnXHK.js} +1 -1
  99. package/dist/ui/assets/host-command-zx0pt9Np.js +1 -0
  100. package/dist/ui/assets/{html-BLkwJ0Yd.js → html-BsvMqTlf.js} +1 -1
  101. package/dist/ui/assets/{html-derivative-B3p5VrMH.js → html-derivative-D9FvRNj4.js} +1 -1
  102. package/dist/ui/assets/icon-example-LUkiEXyS.js +111 -0
  103. package/dist/ui/assets/{jinja-BeFOxtqS.js → jinja-CixBDh_U.js} +1 -1
  104. package/dist/ui/assets/{js-realm-worker-BcijiBMH.js → js-realm-worker-BZhHEqbx.js} +1 -1
  105. package/dist/ui/assets/jsh-runtime-extensions-DpVq60Gw.js +1 -0
  106. package/dist/ui/assets/julia-B5NbrcUp.js +1 -0
  107. package/dist/ui/assets/kanagawa-dragon-Bozd7klA.js +1 -0
  108. package/dist/ui/assets/kanagawa-lotus-BmuOG9ZW.js +1 -0
  109. package/dist/ui/assets/kanagawa-wave-BML5mF2J.js +1 -0
  110. package/dist/ui/assets/kernel-worker-CwFqaikq.js +5233 -0
  111. package/dist/ui/assets/legacy-api-aliases-BnRqMAef.js +1 -0
  112. package/dist/ui/assets/legacy-api-aliases-oJPAvhVV.js +1 -0
  113. package/dist/ui/assets/{lick-manager-BJhAu_iX.js → lick-manager-DFmMezV-.js} +1 -1
  114. package/dist/ui/assets/{lick-urls-AW0BSaf4.js → lick-urls-DcXOqXGm.js} +1 -1
  115. package/dist/ui/assets/{lick-ws-bridge-DiPcVRfN.js → lick-ws-bridge-CnkYvHKI.js} +1 -1
  116. package/dist/ui/assets/{lick-ws-bridge-CWRES2H2.js → lick-ws-bridge-yklVm5en.js} +1 -1
  117. package/dist/ui/assets/{local-llm-DVCKFUl_.js → local-llm-D4MgnlBK.js} +1 -1
  118. package/dist/ui/assets/{local-llm-CQE3URQQ.js → local-llm-HluX94rS.js} +1 -1
  119. package/dist/ui/assets/{main-DQS8QHXU.js → main-BmpPeikS.js} +3 -3
  120. package/dist/ui/assets/{marko-C3klgjEa.js → marko-DYWPPmCl.js} +1 -1
  121. package/dist/ui/assets/mdc-Cno1UUUH.js +1 -0
  122. package/dist/ui/assets/mistral-conversations-BtaPxrK1.js +4 -0
  123. package/dist/ui/assets/mistral-conversations-CDLVw-9i.js +4 -0
  124. package/dist/ui/assets/{transform-messages-DEFauvrq.js → models-4WTk3EBD.js} +1 -1
  125. package/dist/ui/assets/{transform-messages-N_eMsP2M.js → models-BSkXF4T6.js} +1 -1
  126. package/dist/ui/assets/monokai-B_bV9PQ9.js +1 -0
  127. package/dist/ui/assets/mount-B_Yysj_W.js +2 -0
  128. package/dist/ui/assets/{mount-bridge-client-4blXuJO1.js → mount-bridge-client-DZE6sHdr.js} +1 -1
  129. package/dist/ui/assets/mount-kkSADJkJ.js +1 -0
  130. package/dist/ui/assets/mount-recovery-xQgEe0_O.js +2 -0
  131. package/dist/ui/assets/new-session-CEfChDqS.js +2 -0
  132. package/dist/ui/assets/oauth-bootstrap-C9bBExq6.js +2 -0
  133. package/dist/ui/assets/oauth-service-CTntqv0R.js +1 -0
  134. package/dist/ui/assets/oauth-service-Uk8UIb05.js +1 -0
  135. package/dist/ui/assets/{onboarding-orchestrator-CaLdds3m.js → onboarding-orchestrator-CnKr0yBW.js} +1 -1
  136. package/dist/ui/assets/openai-codex-Cs4FnQBb.js +1 -0
  137. package/dist/ui/assets/openai-codex-QVbVkjdj.js +1 -0
  138. package/dist/ui/assets/openai-codex-responses-CPOJeFUY.js +7 -0
  139. package/dist/ui/assets/openai-codex-responses-jQR19NyX.js +7 -0
  140. package/dist/ui/assets/openai-completions-DGOcowq8.js +5 -0
  141. package/dist/ui/assets/openai-completions-DGZFJo5D.js +5 -0
  142. package/dist/ui/assets/openai-responses-CDTdSIhv.js +1 -0
  143. package/dist/ui/assets/openai-responses-bnETPgx9.js +1 -0
  144. package/dist/ui/assets/{openai-responses-shared-DxcsuzHF.js → openai-responses-shared-ChgvRZ74.js} +5 -5
  145. package/dist/ui/assets/{openai-responses-shared-DhnqxYC9.js → openai-responses-shared-DqJbHrek.js} +5 -5
  146. package/dist/ui/assets/openrouter-CKoiUQKB.js +1 -0
  147. package/dist/ui/assets/openrouter-D1wpkLTj.js +1 -0
  148. package/dist/ui/assets/{openrouter-oauth-Dy4Qqt06.js → openrouter-oauth-Df_lWai3.js} +1 -1
  149. package/dist/ui/assets/{openrouter-oauth-DvOb1QMV.js → openrouter-oauth-jvPojBWW.js} +1 -1
  150. package/dist/ui/assets/{page-approval-service-Bbc3_KdK.js → page-approval-service-BsXoPdFJ.js} +1 -1
  151. package/dist/ui/assets/panel-rpc-handlers-Dwk2fvsL.js +2 -0
  152. package/dist/ui/assets/{panelize-shell-BRldzPxv.js → panelize-shell-DG3fFAS4.js} +1 -1
  153. package/dist/ui/assets/patterns-ChiGbijt.js +171 -0
  154. package/dist/ui/assets/php-m5Ug_San.js +1 -0
  155. package/dist/ui/assets/port-bridge-client-BhmNRlRv.js +2 -0
  156. package/dist/ui/assets/port-bridge-client-Bz2N1tvn.js +1 -0
  157. package/dist/ui/assets/{provider-D2RXncrR.js → provider-Dq-ruSoi.js} +2 -2
  158. package/dist/ui/assets/{provider-Bk24TjUg.js → provider-Y9RlYumW.js} +1 -1
  159. package/dist/ui/assets/{provider-settings-B5B0NtAl.js → provider-settings-CR96H2hU.js} +1 -1
  160. package/dist/ui/assets/provider-settings-DNJS-V3F.js +2 -0
  161. package/dist/ui/assets/{provider-store-access-Cl5aZRx7.js → provider-store-access-BIdOJknd.js} +2 -2
  162. package/dist/ui/assets/provider-store-access-HarlSCPD.js +1 -0
  163. package/dist/ui/assets/providers-BS5_Cp-0.js +2 -0
  164. package/dist/ui/assets/providers-DRiRdLO1.js +1 -0
  165. package/dist/ui/assets/proxied-fetch-BGeNrvQ4.js +2 -0
  166. package/dist/ui/assets/proxied-fetch-Co-pb0x0.js +1 -0
  167. package/dist/ui/assets/{pug-BPcX_o8k.js → pug-B4bk2kWf.js} +1 -1
  168. package/dist/ui/assets/quick-llm-9w6VrHaQ.js +1 -0
  169. package/dist/ui/assets/r-C5FwQflr.js +1 -0
  170. package/dist/ui/assets/record-Cy655bTh.js +1 -0
  171. package/dist/ui/assets/{recovery-screen-MHXsY2RD.js → recovery-screen-ClVBOtr7.js} +1 -1
  172. package/dist/ui/assets/red-DX1BQOs8.js +1 -0
  173. package/dist/ui/assets/{redirect-uri-B1SxiY-b.js → redirect-uri-B16gkDfI.js} +1 -1
  174. package/dist/ui/assets/{remote-terminal-view-Dc-DMywu.js → remote-terminal-view-DSUnPeXp.js} +1 -1
  175. package/dist/ui/assets/rose-pine-aMsaMD1D.js +1 -0
  176. package/dist/ui/assets/rose-pine-dawn-8PwUyIlP.js +1 -0
  177. package/dist/ui/assets/rose-pine-moon-DO-qXg-I.js +1 -0
  178. package/dist/ui/assets/{scss-0nEf0IT-.js → scss-BaZL6t2Y.js} +1 -1
  179. package/dist/ui/assets/secret-env-CjwX7z7b.js +1 -0
  180. package/dist/ui/assets/secret-topology-0AWfFTh5.js +1 -0
  181. package/dist/ui/assets/{secrets-bridge-client-cWDAnFqs.js → secrets-bridge-client-DCQ44RyR.js} +1 -1
  182. package/dist/ui/assets/{session-freezer-CnFBCb6j.js → session-freezer-BcGQ4XGx.js} +3 -3
  183. package/dist/ui/assets/{setup-feature-flags-remote-Dlcwmn-_.js → setup-feature-flags-remote-8Rvw554i.js} +1 -1
  184. package/dist/ui/assets/setup-standalone-prelude-NNpe-m64.js +2 -0
  185. package/dist/ui/assets/setup-sudo-CbAhwltm.js +2 -0
  186. package/dist/ui/assets/{skills-C90t15zW.js → skills-CDnSEmr6.js} +1 -1
  187. package/dist/ui/assets/{slicc-diff-DsGtkf0J.js → slicc-diff-DhGIKKqP.js} +1 -1
  188. package/dist/ui/assets/slicc-version-2zGA6xjX.js +1 -0
  189. package/dist/ui/assets/smithy-Dgaz7aur.js +1 -0
  190. package/dist/ui/assets/solarized-dark-UdsmMDCL.js +1 -0
  191. package/dist/ui/assets/solarized-light-C1IUL_tW.js +1 -0
  192. package/dist/ui/assets/{speak-BDT9rGzg.js → speak-BSK3Souh.js} +1 -1
  193. package/dist/ui/assets/{sql-69VAgb2g.js → sql-DvarVTMJ.js} +1 -1
  194. package/dist/ui/assets/{src-DsDPrXOS.js → src-DXdqCrdV.js} +2 -2
  195. package/dist/ui/assets/{store-BmhLnay6.js → store-BKV5dm_L.js} +1 -1
  196. package/dist/ui/assets/{store-Cvg04_Rz.js → store-Bl3OB-Qs.js} +1 -1
  197. package/dist/ui/assets/style-guide-Bgzsk7bf.js +821 -0
  198. package/dist/ui/assets/{sudo-DYhM4jWf.js → sudo-Bnq6X0me.js} +2 -2
  199. package/dist/ui/assets/{svelte-B4PVQJ-7.js → svelte-D4FIy7cP.js} +1 -1
  200. package/dist/ui/assets/swift-CyEgAFGc.js +1 -0
  201. package/dist/ui/assets/temperature-support-B4x2xaWY.js +1 -0
  202. package/dist/ui/assets/temperature-support-Cpml9LfI.js +1 -0
  203. package/dist/ui/assets/transform-messages-DZg9zDcV.js +1 -0
  204. package/dist/ui/assets/transform-messages-XkZ1QnTb.js +1 -0
  205. package/dist/ui/assets/transformers-env-DPjdc2EQ.js +1 -0
  206. package/dist/ui/assets/tray-leader-iVJTGwuf.js +1 -0
  207. package/dist/ui/assets/{tray-leave-runtime-BGfdX5KF.js → tray-leave-runtime-CN7V9V7O.js} +1 -1
  208. package/dist/ui/assets/{tray-runtime-config-B1LF8Kd4.js → tray-runtime-config-CVoPQrT2.js} +1 -1
  209. package/dist/ui/assets/tray-runtime-config-D7cmCcHJ.js +1 -0
  210. package/dist/ui/assets/ts-tags-C4Ifwy6r.js +1 -0
  211. package/dist/ui/assets/{upgrade-detection-Co2MZvYS.js → upgrade-detection-BC1ILaMz.js} +1 -1
  212. package/dist/ui/assets/vesper-DdrHHSXu.js +1 -0
  213. package/dist/ui/assets/{voice-reply-CnP5wEO_.js → voice-reply-BNX-jA0G.js} +1 -1
  214. package/dist/ui/assets/{vue-Dg0Kv3qp.js → vue-Djeyp8pE.js} +1 -1
  215. package/dist/ui/assets/{vue-vine-DdvC-EE2.js → vue-vine-By_xyXdL.js} +1 -1
  216. package/dist/ui/assets/{wc-attach-DsMfUpx8.js → wc-attach-CPoS-Z-g.js} +2 -2
  217. package/dist/ui/assets/{wc-extension-CL-LAE0W.js → wc-extension-pWBTulcf.js} +2 -2
  218. package/dist/ui/assets/wc-float-label-D7p-4xyd.js +1 -0
  219. package/dist/ui/assets/wc-follower-TQacOT97.js +17 -0
  220. package/dist/ui/assets/wc-live-DlayGhwI.js +8 -0
  221. package/dist/ui/assets/wc-nav-Co62IQ9D.js +2 -0
  222. package/dist/ui/assets/wc-onboarding-CqIwr35s.js +2 -0
  223. package/dist/ui/assets/{wc-permissions-gFKCQht9.js → wc-permissions-Oq3nX_59.js} +2 -2
  224. package/dist/ui/assets/wc-placeholder-CRVvrH3X.js +4 -0
  225. package/dist/ui/assets/{wc-scoop-color-CByZNEJo.js → wc-scoop-color-ShF3p7L9.js} +1 -1
  226. package/dist/ui/assets/wc-settings-Bh5hIzNc.js +51 -0
  227. package/dist/ui/assets/{wc-shell-DC5bovWA.js → wc-shell-7mtD7TN_.js} +3 -3
  228. package/dist/ui/assets/wc-sprinkles-wT8iHdRT.js +2 -0
  229. package/dist/ui/assets/wc-tray-DxDD8gsB.js +2 -0
  230. package/dist/ui/assets/wc-tray-scoops-B7RY-1VN.js +5 -0
  231. package/dist/ui/assets/wc-unit-context-C0EqsYUD.js +1 -0
  232. package/dist/ui/assets/welcome-CyCMJDqG.js +621 -0
  233. package/dist/ui/assets/{welcome-detection-C2MvJDW4.js → welcome-detection-DjomEbCT.js} +1 -1
  234. package/dist/ui/assets/whisper-session-DpDs0sDL.js +2 -0
  235. package/dist/ui/assets/x_search-C-5p00-C.js +131 -0
  236. package/dist/ui/assets/xai-grok-CcoDiPUW.js +1 -0
  237. package/dist/ui/assets/xai-grok-DO4be7QU.js +1 -0
  238. package/dist/ui/index.html +16 -14
  239. package/dist/ui/packages/webapp/index.html +16 -14
  240. package/dist/ui/slicc-diff.js +1 -1
  241. package/package.json +3 -4
  242. package/dist/ui/assets/adobe-C19oqBaU.js +0 -1
  243. package/dist/ui/assets/adobe-Dv-gMc09.js +0 -2
  244. package/dist/ui/assets/anthropic-messages-BX4DpK10.js +0 -39
  245. package/dist/ui/assets/anthropic-messages-C-orWG7m.js +0 -39
  246. package/dist/ui/assets/azure-openai-responses-C2LleG-4.js +0 -1
  247. package/dist/ui/assets/azure-openai-responses-Df9YPxyp.js +0 -1
  248. package/dist/ui/assets/bedrock-camp-B0KF_4RS.js +0 -1
  249. package/dist/ui/assets/bedrock-camp-qpZqnqLa.js +0 -2
  250. package/dist/ui/assets/catppuccin-frappe-3VR1Za6u.js +0 -1
  251. package/dist/ui/assets/catppuccin-latte-DwIHMF0Q.js +0 -1
  252. package/dist/ui/assets/catppuccin-macchiato-DYnBP6_5.js +0 -1
  253. package/dist/ui/assets/catppuccin-mocha-DYhrFGRu.js +0 -1
  254. package/dist/ui/assets/cerebras-CDHmZz_Y.js +0 -1
  255. package/dist/ui/assets/cerebras-DPV0CO1I.js +0 -1
  256. package/dist/ui/assets/cpp-CdhRINFH.js +0 -1
  257. package/dist/ui/assets/db-DATxPCUz.js +0 -1
  258. package/dist/ui/assets/db-DIbBClfy.js +0 -1
  259. package/dist/ui/assets/discovery-preference-fqUhjzeE.js +0 -1
  260. package/dist/ui/assets/dist-Dwa3Gdd4.js +0 -1547
  261. package/dist/ui/assets/float-topology-BgioAcOd.js +0 -1
  262. package/dist/ui/assets/fs-CIIVB1OK.js +0 -2
  263. package/dist/ui/assets/fs-QyBiZMuq.js +0 -1
  264. package/dist/ui/assets/github-Ctvr_Nd6.js +0 -1
  265. package/dist/ui/assets/github-Dq-ryVOk.js +0 -2
  266. package/dist/ui/assets/github-copilot-DIk_soEH.js +0 -1
  267. package/dist/ui/assets/github-copilot-Dm5mGSYk.js +0 -2
  268. package/dist/ui/assets/google-generative-ai-C9uw7Zks.js +0 -1
  269. package/dist/ui/assets/google-generative-ai-DHBc1oKV.js +0 -1
  270. package/dist/ui/assets/google-vertex-BaT3InWy.js +0 -1
  271. package/dist/ui/assets/google-vertex-DX8CfGr6.js +0 -1
  272. package/dist/ui/assets/host-command-G_JIdBPR.js +0 -1
  273. package/dist/ui/assets/julia-DibC-h6i.js +0 -1
  274. package/dist/ui/assets/kanagawa-dragon-CXtmUGW6.js +0 -1
  275. package/dist/ui/assets/kanagawa-lotus-BN08jTvb.js +0 -1
  276. package/dist/ui/assets/kanagawa-wave-CTweb8Dz.js +0 -1
  277. package/dist/ui/assets/kernel-worker-BiaHa-Mz.js +0 -9014
  278. package/dist/ui/assets/legacy-api-aliases-CsTVszvY.js +0 -1
  279. package/dist/ui/assets/legacy-api-aliases-nSD9C16V.js +0 -1
  280. package/dist/ui/assets/mdc-Otire2H_.js +0 -1
  281. package/dist/ui/assets/mistral-conversations-BXo-tb0V.js +0 -4
  282. package/dist/ui/assets/mistral-conversations-Ck257tvp.js +0 -4
  283. package/dist/ui/assets/monokai-CdkpiU2Y.js +0 -1
  284. package/dist/ui/assets/mount-C20u28qg.js +0 -2
  285. package/dist/ui/assets/mount-DSlWOyRg.js +0 -1
  286. package/dist/ui/assets/mount-recovery-Dp2uzDT3.js +0 -2
  287. package/dist/ui/assets/new-session-BmqHuPnd.js +0 -2
  288. package/dist/ui/assets/oauth-bootstrap-CF5Iq7xU.js +0 -2
  289. package/dist/ui/assets/oauth-service-Bbrrl8Mr.js +0 -1
  290. package/dist/ui/assets/oauth-service-Cy5ngmcU.js +0 -1
  291. package/dist/ui/assets/openai-codex-C2ilX51B.js +0 -1
  292. package/dist/ui/assets/openai-codex-bhWf9evO.js +0 -1
  293. package/dist/ui/assets/openai-codex-responses-BQzefg3i.js +0 -7
  294. package/dist/ui/assets/openai-codex-responses-JtcU5b3J.js +0 -7
  295. package/dist/ui/assets/openai-completions-D-HjYi8x.js +0 -5
  296. package/dist/ui/assets/openai-completions-QMfwfjiE.js +0 -5
  297. package/dist/ui/assets/openai-responses-BVHnEPuG.js +0 -1
  298. package/dist/ui/assets/openai-responses-Ca0oWhbv.js +0 -1
  299. package/dist/ui/assets/openrouter-Bo62to17.js +0 -1
  300. package/dist/ui/assets/openrouter-C9_8OqEu.js +0 -1
  301. package/dist/ui/assets/panel-rpc-handlers-Dbhx7m_G.js +0 -2
  302. package/dist/ui/assets/php-BidqsJNR.js +0 -1
  303. package/dist/ui/assets/port-bridge-client-BbVs1yhx.js +0 -2
  304. package/dist/ui/assets/port-bridge-client-DxYLF2-N.js +0 -1
  305. package/dist/ui/assets/provider-settings-BTpBo_o4.js +0 -2
  306. package/dist/ui/assets/provider-store-access-CrgSlufJ.js +0 -1
  307. package/dist/ui/assets/providers-Crdj27DN.js +0 -2
  308. package/dist/ui/assets/providers-DX7EJ4Fn.js +0 -1
  309. package/dist/ui/assets/proxied-fetch-B4g-4VbQ.js +0 -2
  310. package/dist/ui/assets/proxied-fetch-n2pCvcgW.js +0 -1
  311. package/dist/ui/assets/quick-llm-hL6bZGLe.js +0 -1
  312. package/dist/ui/assets/r-Dzep-lPg.js +0 -1
  313. package/dist/ui/assets/record-Z5ZWTUPJ.js +0 -1
  314. package/dist/ui/assets/red-CJ3rzSJv.js +0 -1
  315. package/dist/ui/assets/rose-pine-BthvhNj6.js +0 -1
  316. package/dist/ui/assets/rose-pine-dawn-Dg85fqjY.js +0 -1
  317. package/dist/ui/assets/rose-pine-moon-hon4tzzS.js +0 -1
  318. package/dist/ui/assets/secret-env-q4hxkt7Z.js +0 -1
  319. package/dist/ui/assets/secret-topology-xLmXoozo.js +0 -1
  320. package/dist/ui/assets/setup-standalone-prelude-Btsjqjoe.js +0 -2
  321. package/dist/ui/assets/setup-sudo-DrmeHwU_.js +0 -2
  322. package/dist/ui/assets/slicc-version-tsUsi909.js +0 -1
  323. package/dist/ui/assets/solarized-dark-DV17i1UV.js +0 -1
  324. package/dist/ui/assets/solarized-light-DSh2HLQt.js +0 -1
  325. package/dist/ui/assets/swift-DonLKvLd.js +0 -1
  326. package/dist/ui/assets/transformers-env-SL0zTs7S.js +0 -1
  327. package/dist/ui/assets/tray-leader-DcRtwWl-.js +0 -1
  328. package/dist/ui/assets/tray-runtime-config-CRGwg9SK.js +0 -1
  329. package/dist/ui/assets/ts-tags-BUIgHz80.js +0 -1
  330. package/dist/ui/assets/vesper-D5bVUKB1.js +0 -1
  331. package/dist/ui/assets/wc-float-label-qqb_uM9y.js +0 -1
  332. package/dist/ui/assets/wc-follower-troAtcMA.js +0 -17
  333. package/dist/ui/assets/wc-live-D1Mon0cw.js +0 -8
  334. package/dist/ui/assets/wc-nav-BV6Jm98e.js +0 -2
  335. package/dist/ui/assets/wc-onboarding-Dg4E9VDR.js +0 -2
  336. package/dist/ui/assets/wc-placeholder-_6RUOpYH.js +0 -4
  337. package/dist/ui/assets/wc-settings-Dy5cPd8c.js +0 -51
  338. package/dist/ui/assets/wc-sprinkles-CDP31nXS.js +0 -2
  339. package/dist/ui/assets/wc-tray-MFZAPwt4.js +0 -2
  340. package/dist/ui/assets/wc-tray-scoops-B2RP8cgD.js +0 -5
  341. package/dist/ui/assets/whisper-session-Cf2gGkoR.js +0 -2
  342. package/dist/ui/assets/xai-grok-C2GEvF8U.js +0 -1
  343. package/dist/ui/assets/xai-grok-CoSPbEFx.js +0 -1
@@ -0,0 +1,621 @@
1
+ var e=`<!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Welcome</title>
5
+ <meta charset="utf-8" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
7
+ <style>
8
+ * { box-sizing: border-box; margin: 0; padding: 0; }
9
+
10
+ body {
11
+ font-family: var(--s2-font-family, 'Adobe Clean', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif);
12
+ background: transparent;
13
+ color: var(--s2-content-default, #e8e8e8);
14
+ }
15
+
16
+ /* ── Step visibility ── */
17
+ .step { display: none; animation: fadeUp 0.18s ease both; }
18
+ .step.active { display: block; }
19
+ @keyframes fadeUp {
20
+ from { opacity: 0; transform: translateY(6px); }
21
+ to { opacity: 1; transform: translateY(0); }
22
+ }
23
+
24
+ /* ── Pills ── */
25
+ .pills {
26
+ display: flex;
27
+ flex-wrap: wrap;
28
+ gap: 8px;
29
+ margin-top: 14px;
30
+ }
31
+ .pill {
32
+ display: inline-flex;
33
+ align-items: center;
34
+ gap: 6px;
35
+ height: 34px;
36
+ padding: 0 14px;
37
+ border-radius: var(--s2-radius-pill, 9999px);
38
+ background: var(--s2-bg-elevated, #2c2c2c);
39
+ border: 1px solid var(--s2-border-subtle, #3a3a3a);
40
+ cursor: pointer;
41
+ font-family: inherit;
42
+ font-size: 13px;
43
+ font-weight: 500;
44
+ color: var(--s2-content-default, #e8e8e8);
45
+ transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
46
+ user-select: none;
47
+ white-space: nowrap;
48
+ }
49
+ .pill:hover {
50
+ background: var(--s2-bg-layer-2, #252525);
51
+ border-color: var(--s2-border-default, #4a4a4a);
52
+ }
53
+ .pill.selected {
54
+ border-color: var(--s2-accent, #3562ff);
55
+ box-shadow: 0 0 0 1px var(--s2-accent, #3562ff);
56
+ background: var(--s2-bg-layer-2, #252525);
57
+ }
58
+
59
+ /* ── Heading + sub ── */
60
+ .step-heading {
61
+ font-size: 15px;
62
+ font-weight: 700;
63
+ color: var(--s2-content-default, #e8e8e8);
64
+ line-height: 1.3;
65
+ }
66
+ .step-sub {
67
+ font-size: 12px;
68
+ color: var(--s2-content-secondary, #a1a1a1);
69
+ margin-top: 3px;
70
+ }
71
+
72
+ /* ── Text input row ── */
73
+ .input-row {
74
+ display: flex;
75
+ align-items: center;
76
+ gap: 8px;
77
+ margin-top: 14px;
78
+ background: var(--s2-bg-elevated, #2c2c2c);
79
+ border: 1px solid var(--s2-border-subtle, #3a3a3a);
80
+ border-radius: var(--s2-radius-pill, 9999px);
81
+ padding: 6px 6px 6px 14px;
82
+ }
83
+ /* Intentionally no \`:focus-within\` accent on .input-row — the
84
+ input's own focus ring (from the dip's global form styles)
85
+ already signals focus. A second ring on the wrapper reads as
86
+ "this whole row is selected" and looks like a bug. */
87
+ .input-row input {
88
+ flex: 1;
89
+ border: none;
90
+ outline: none;
91
+ background: transparent;
92
+ font-family: inherit;
93
+ font-size: 14px;
94
+ color: var(--s2-content-default, #e8e8e8);
95
+ }
96
+ .input-row input::placeholder { color: var(--s2-content-tertiary, #8a8a8a); }
97
+ .input-row button {
98
+ width: 30px;
99
+ height: 30px;
100
+ border-radius: 50%;
101
+ border: none;
102
+ background: var(--s2-accent, #3562ff);
103
+ color: var(--s2-gray-25, #f5f5f5);
104
+ cursor: pointer;
105
+ display: flex;
106
+ align-items: center;
107
+ justify-content: center;
108
+ flex-shrink: 0;
109
+ transition: background 0.15s;
110
+ }
111
+ .input-row button:hover { background: var(--s2-accent-hover, #4a75ff); }
112
+
113
+ /* ── Continue button ── */
114
+ .cta-row { margin-top: 14px; }
115
+ .cta {
116
+ display: inline-flex;
117
+ align-items: center;
118
+ justify-content: center;
119
+ padding: 8px 22px;
120
+ border-radius: var(--s2-radius-pill, 9999px);
121
+ background: var(--s2-accent, #3562ff);
122
+ color: var(--s2-gray-25, #f5f5f5);
123
+ border: none;
124
+ font-family: inherit;
125
+ font-size: 13px;
126
+ font-weight: 600;
127
+ cursor: pointer;
128
+ transition: background 0.15s;
129
+ }
130
+ .cta:hover { background: var(--s2-accent-hover, #4a75ff); }
131
+
132
+ /* ── Footer row: dots + skip ── */
133
+ .footer {
134
+ display: flex;
135
+ align-items: center;
136
+ justify-content: space-between;
137
+ margin-top: 16px;
138
+ }
139
+ .dots { display: flex; gap: 5px; }
140
+ .dot {
141
+ width: 5px;
142
+ height: 5px;
143
+ border-radius: 50%;
144
+ background: var(--s2-gray-300, #4a4a4a);
145
+ transition: background 0.2s, transform 0.2s;
146
+ }
147
+ .dot.active { background: var(--s2-accent, #3562ff); transform: scale(1.3); }
148
+ .dot.done { background: var(--s2-accent, #3562ff); }
149
+
150
+ .skip-btn {
151
+ background: none;
152
+ border: none;
153
+ font-family: inherit;
154
+ font-size: 11px;
155
+ color: var(--s2-content-tertiary, #8a8a8a);
156
+ cursor: pointer;
157
+ padding: 2px 4px;
158
+ }
159
+ .skip-btn:hover { color: var(--s2-content-secondary, #a1a1a1); }
160
+
161
+ /* ── Back button ── */
162
+ .back-btn {
163
+ background: none;
164
+ border: none;
165
+ font-family: inherit;
166
+ font-size: 11px;
167
+ color: var(--s2-content-secondary, #a1a1a1);
168
+ cursor: pointer;
169
+ display: inline-flex;
170
+ align-items: center;
171
+ gap: 3px;
172
+ padding: 2px 0;
173
+ margin-bottom: 10px;
174
+ }
175
+ .back-btn:hover { color: var(--s2-content-default, #e8e8e8); }
176
+ .back-btn[hidden] { display: none; }
177
+
178
+ /* ── Done state ── */
179
+ .done-state {
180
+ text-align: center;
181
+ padding: 12px 0 4px;
182
+ font-size: 14px;
183
+ color: var(--s2-content-secondary, #a1a1a1);
184
+ }
185
+ </style>
186
+ </head>
187
+ <body>
188
+ <div class="sprinkle-action-card">
189
+
190
+ <!-- Back -->
191
+ <div class="sprinkle-action-card__body" style="padding: 16px 24px 0">
192
+ <button class="back-btn" id="backBtn" hidden onclick="goBack()">
193
+ <i data-lucide="arrow-left" style="width:12px;height:12px"></i> Back
194
+ </button>
195
+
196
+ <!-- Step 1: Purpose -->
197
+ <div class="step active" id="s1">
198
+ <div class="step-heading">What brings you here?</div>
199
+ <div class="pills" id="purposePills"></div>
200
+ </div>
201
+
202
+ <!-- Step 2: Role -->
203
+ <div class="step" id="s2">
204
+ <div class="step-heading" id="s2Heading">What do you do?</div>
205
+ <div class="pills" id="rolePills"></div>
206
+ </div>
207
+
208
+ <!-- Step 3: Tasks -->
209
+ <div class="step" id="s3">
210
+ <div class="step-heading" id="s3Heading">What do you want to tackle?</div>
211
+ <div class="step-sub">Pick as many as you like</div>
212
+ <div class="pills" id="taskPills"></div>
213
+ <div class="cta-row">
214
+ <button class="cta" onclick="goStep(4)">Continue</button>
215
+ </div>
216
+ </div>
217
+
218
+ <!-- Step 4: Name -->
219
+ <div class="step" id="s4">
220
+ <div class="step-heading">What should I call you?</div>
221
+ <div class="input-row">
222
+ <input type="text" id="nameIn" placeholder="Your name"
223
+ onkeydown="if(event.key==='Enter') advanceFrom(4)" />
224
+ <button onclick="advanceFrom(4)" aria-label="Continue">
225
+ <i data-lucide="arrow-right" style="width:14px;height:14px"></i>
226
+ </button>
227
+ </div>
228
+ </div>
229
+
230
+ <!-- Step 5: Company (work only) -->
231
+ <div class="step" id="s5">
232
+ <div class="step-heading">Where do you work?</div>
233
+ <div class="input-row">
234
+ <input type="text" id="companyIn" placeholder="Company or organization"
235
+ onkeydown="if(event.key==='Enter') advanceFrom(5)" />
236
+ <button onclick="advanceFrom(5)" aria-label="Continue">
237
+ <i data-lucide="arrow-right" style="width:14px;height:14px"></i>
238
+ </button>
239
+ </div>
240
+ </div>
241
+
242
+ <!-- Step 6: Apps -->
243
+ <div class="step" id="s6">
244
+ <div class="step-heading" id="s6Heading">What apps do you use most?</div>
245
+ <div class="step-sub">Pick any that apply</div>
246
+ <div class="pills" id="appPills"></div>
247
+ <div class="cta-row">
248
+ <button class="cta" onclick="finish()">Let's go</button>
249
+ </div>
250
+ </div>
251
+
252
+ <!-- Done -->
253
+ <div class="step" id="sDone">
254
+ <div class="done-state" id="sDoneText">Setting things up&hellip;</div>
255
+ </div>
256
+ </div>
257
+
258
+ <!-- Footer: dots + skip -->
259
+ <div class="sprinkle-action-card__body" style="padding-top:0" id="footerArea">
260
+ <div class="footer">
261
+ <div class="dots" id="dots">
262
+ <div class="dot active"></div>
263
+ <div class="dot"></div>
264
+ <div class="dot"></div>
265
+ <div class="dot"></div>
266
+ <div class="dot"></div>
267
+ <div class="dot"></div>
268
+ </div>
269
+ <button class="skip-btn" id="skipBtn" onclick="skipStep()">skip</button>
270
+ </div>
271
+ </div>
272
+
273
+ </div>
274
+
275
+ <script>
276
+ var cur = 1;
277
+ var profile = { purpose: '', role: '', tasks: [], name: '', company: '', apps: [] };
278
+
279
+ // Font joke: applied to task/app steps after role selection
280
+ var ROLE_FONTS = {
281
+ 'developer': 'monospace',
282
+ 'designer': 'Papyrus, fantasy',
283
+ 'product-pm': '"Comic Sans MS", "Comic Sans", cursive',
284
+ };
285
+
286
+ // Role-specific phrasing for step 3 ("what do you want to do
287
+ // here") so the wizard reads less like a generic survey and
288
+ // more like it knows who's typing. Falls back to a neutral
289
+ // prompt when the role doesn't have a flavor of its own.
290
+ var TASK_HEADINGS_BY_ROLE = {
291
+ 'developer': 'What are you hacking?',
292
+ 'designer': 'What do you dream of?',
293
+ 'product-pm': "What's your mission?",
294
+ 'content-creator': "What's your story?",
295
+ 'marketer': "What's your ambition?",
296
+ 'founder': 'What do you want to create?',
297
+ 'student': 'What are you learning?',
298
+ 'researcher': 'What are you researching?',
299
+ };
300
+ var TASK_HEADING_DEFAULT = 'What do you want to tackle?';
301
+
302
+ var PURPOSES = [
303
+ { id: 'work', label: 'Work', icon: 'briefcase' },
304
+ { id: 'school', label: 'School', icon: 'graduation-cap' },
305
+ { id: 'personal', label: 'Personal', icon: 'user' },
306
+ { id: 'side-project',label: 'Side project', icon: 'lightbulb' },
307
+ { id: 'exploring', label: 'Just exploring', icon: 'compass' },
308
+ ];
309
+
310
+ var ROLES_BY_PURPOSE = {
311
+ work: {
312
+ heading: "What's your role?",
313
+ roles: [
314
+ { id: 'developer', label: 'Developer', icon: 'code' },
315
+ { id: 'designer', label: 'Designer', icon: 'palette' },
316
+ { id: 'content-creator', label: 'Content creator', icon: 'pen-tool' },
317
+ { id: 'marketer', label: 'Marketer', icon: 'megaphone' },
318
+ { id: 'product-pm', label: 'Product / PM', icon: 'layout-dashboard' },
319
+ { id: 'founder', label: 'Founder', icon: 'rocket' },
320
+ { id: 'other', label: 'Something else', icon: 'help-circle' },
321
+ ],
322
+ },
323
+ school: {
324
+ heading: "What are you studying?",
325
+ roles: [
326
+ { id: 'student', label: 'Student', icon: 'book-open' },
327
+ { id: 'researcher', label: 'Researcher', icon: 'microscope' },
328
+ { id: 'developer', label: 'Developer', icon: 'code' },
329
+ { id: 'designer', label: 'Designer', icon: 'palette' },
330
+ { id: 'other', label: 'Something else', icon: 'help-circle' },
331
+ ],
332
+ },
333
+ _default: {
334
+ heading: "What's your background?",
335
+ roles: [
336
+ { id: 'developer', label: 'Developer', icon: 'code' },
337
+ { id: 'designer', label: 'Designer', icon: 'palette' },
338
+ { id: 'content-creator', label: 'Content creator', icon: 'pen-tool' },
339
+ { id: 'marketer', label: 'Marketer', icon: 'megaphone' },
340
+ { id: 'product-pm', label: 'Product / PM', icon: 'layout-dashboard' },
341
+ { id: 'student', label: 'Student', icon: 'book-open' },
342
+ { id: 'researcher', label: 'Researcher', icon: 'microscope' },
343
+ { id: 'founder', label: 'Founder', icon: 'rocket' },
344
+ { id: 'other', label: 'Something else', icon: 'help-circle' },
345
+ ],
346
+ },
347
+ };
348
+
349
+ var TASKS = [
350
+ { id: 'build-websites', label: 'Build websites', icon: 'globe' },
351
+ { id: 'migrate-page-aem', label: 'Migrate a page to AEM', icon: 'book-up' },
352
+ { id: 'automate', label: 'Automate tasks', icon: 'zap' },
353
+ { id: 'research', label: 'Research & analyze', icon: 'search' },
354
+ { id: 'write-content', label: 'Write content', icon: 'file-text' },
355
+ { id: 'extract-data', label: 'Extract data', icon: 'database' },
356
+ { id: 'monitor', label: 'Monitor sites', icon: 'activity' },
357
+ { id: 'seo', label: 'SEO & audits', icon: 'bar-chart' },
358
+ { id: 'manage-files', label: 'Manage files', icon: 'folder' },
359
+ { id: 'browser-automation', label: 'Browser automation', icon: 'mouse-pointer' },
360
+ { id: 'not-sure', label: 'Not sure yet', icon: 'circle-help' },
361
+ ];
362
+
363
+ var APPS = [
364
+ { id: 'aem', label: 'Adobe Experience Manager', icon: 'box',
365
+ relevance: ['build-websites','migrate-page-aem','write-content','seo','content-creator','marketer','designer'] },
366
+ { id: 'imessage', label: 'iMessage', icon: 'message-circle',
367
+ relevance: ['personal','side-project','exploring'] },
368
+ { id: 'teams', label: 'Microsoft Teams', icon: 'users',
369
+ relevance: ['work','school','developer','designer','marketer','product-pm','founder','student'] },
370
+ { id: 'slack', label: 'Slack', icon: 'hash',
371
+ relevance: ['work','school','developer','designer','marketer','product-pm','founder','student'] },
372
+ ];
373
+
374
+ // ── Helpers ────────────────────────────────────────────────
375
+ function applyFontJoke(stepEl) {
376
+ var font = ROLE_FONTS[profile.role];
377
+ if (font) stepEl.style.fontFamily = font;
378
+ else stepEl.style.fontFamily = '';
379
+ }
380
+
381
+ function makePill(item, multiSelect, onSelect, preselected) {
382
+ var btn = document.createElement('button');
383
+ btn.className = 'pill';
384
+ btn.dataset.id = item.id;
385
+ if (preselected) btn.classList.add('selected');
386
+ if (item.icon) {
387
+ var ic = document.createElement('i');
388
+ ic.setAttribute('data-lucide', item.icon);
389
+ ic.style.width = '14px';
390
+ ic.style.height = '14px';
391
+ btn.appendChild(ic);
392
+ }
393
+ btn.appendChild(document.createTextNode(item.label));
394
+ btn.onclick = function () {
395
+ if (multiSelect) {
396
+ btn.classList.toggle('selected');
397
+ } else {
398
+ btn.parentElement.querySelectorAll('.pill').forEach(function(p){ p.classList.remove('selected'); });
399
+ btn.classList.add('selected');
400
+ }
401
+ onSelect(item, btn);
402
+ };
403
+ return btn;
404
+ }
405
+
406
+ // \`selectedIds\` (optional) is an array of item ids that should be
407
+ // pre-marked as selected. Without this, navigating back to a
408
+ // multi-select step (e.g. step 3 tasks) would visually clear
409
+ // previously chosen pills while \`profile.tasks\` still held them,
410
+ // so a Continue click would submit hidden state the user could
411
+ // no longer see — exactly the mismatch the user-side review
412
+ // flagged for step 3.
413
+ function buildPills(containerId, items, multiSelect, onSelect, selectedIds) {
414
+ var el = document.getElementById(containerId);
415
+ el.innerHTML = '';
416
+ var pre = selectedIds || [];
417
+ items.forEach(function(item) {
418
+ el.appendChild(makePill(item, multiSelect, onSelect, pre.indexOf(item.id) >= 0));
419
+ });
420
+ if (window.LucideIcons) window.LucideIcons.render();
421
+ }
422
+
423
+ function getRelevantApps() {
424
+ var ctx = profile.tasks.concat([profile.role, profile.purpose]);
425
+ return APPS.slice().sort(function(a, b) {
426
+ var sa = a.relevance.filter(function(t){ return ctx.indexOf(t) >= 0; }).length;
427
+ var sb = b.relevance.filter(function(t){ return ctx.indexOf(t) >= 0; }).length;
428
+ return sb - sa;
429
+ });
430
+ }
431
+
432
+ // ── Dots ───────────────────────────────────────────────────
433
+ function updateDots(step) {
434
+ // Steps: 1 purpose, 2 role, 3 tasks, 4 name, 5 company(work), 6 apps
435
+ // We show 6 dots; if company step skipped, compress
436
+ var effective = step;
437
+ if (profile.purpose !== 'work' && step >= 5) effective = step - 1;
438
+ var dots = document.getElementById('dots').children;
439
+ for (var i = 0; i < dots.length; i++) {
440
+ dots[i].className = 'dot';
441
+ if (i + 1 === effective) dots[i].className = 'dot active';
442
+ else if (i + 1 < effective) dots[i].className = 'dot done';
443
+ }
444
+ // Hide 6th dot if company step won't appear
445
+ dots[5].style.display = (profile.purpose !== 'work') ? 'none' : '';
446
+ }
447
+
448
+ // ── Navigation ─────────────────────────────────────────────
449
+ function goBack() {
450
+ var prev = cur - 1;
451
+ if (prev === 5 && profile.purpose !== 'work') prev = 4;
452
+ if (prev >= 1) goStep(prev);
453
+ }
454
+
455
+ // Skip clears both the in-memory profile field AND the underlying
456
+ // input value. Without clearing the DOM input, \`goStep\`'s
457
+ // "save inputs when leaving" branch would re-read the stale
458
+ // value the next time the user passes through this step (or via
459
+ // back-navigation), so "skip" wouldn't actually skip the data.
460
+ function skipStep() {
461
+ if (cur === 4) {
462
+ profile.name = '';
463
+ var nameIn = document.getElementById('nameIn');
464
+ if (nameIn) nameIn.value = '';
465
+ goStep(nextStep(cur));
466
+ } else if (cur === 5) {
467
+ profile.company = '';
468
+ var companyIn = document.getElementById('companyIn');
469
+ if (companyIn) companyIn.value = '';
470
+ goStep(nextStep(cur));
471
+ } else if (cur < 6) {
472
+ goStep(nextStep(cur));
473
+ } else {
474
+ finish();
475
+ }
476
+ }
477
+
478
+ function nextStep(n) {
479
+ if (n === 4 && profile.purpose !== 'work') return 6; // skip company
480
+ return n + 1;
481
+ }
482
+
483
+ // Continue-click / Enter-key handler for steps with input fields
484
+ // and for the work-only company step. Routes through nextStep so
485
+ // non-work users skip the company question entirely (work-only
486
+ // step 5) — the original \`goStep(5)\` / \`goStep(6)\` literals
487
+ // bypassed that branch and dropped non-work users straight into
488
+ // a question intended for work users.
489
+ function advanceFrom(n) {
490
+ goStep(nextStep(n));
491
+ }
492
+
493
+ function goStep(n) {
494
+ // Save inputs when leaving
495
+ if (cur === 4) profile.name = (document.getElementById('nameIn').value || '').trim();
496
+ if (cur === 5) profile.company = (document.getElementById('companyIn').value || '').trim();
497
+
498
+ // Build dynamic step content. Each rebuild forwards the
499
+ // previously-saved selection through \`buildPills\`'s
500
+ // \`selectedIds\` arg so back-navigation re-marks pills the
501
+ // user already chose, instead of clearing them visually
502
+ // while \`profile.*\` still holds them.
503
+ if (n === 1) {
504
+ buildPills('purposePills', PURPOSES, false, function(item) {
505
+ profile.purpose = item.id;
506
+ setTimeout(function(){ goStep(2); }, 280);
507
+ }, profile.purpose ? [profile.purpose] : []);
508
+ }
509
+ if (n === 2) {
510
+ var cfg = ROLES_BY_PURPOSE[profile.purpose] || ROLES_BY_PURPOSE._default;
511
+ document.getElementById('s2Heading').textContent = cfg.heading;
512
+ buildPills('rolePills', cfg.roles, false, function(item) {
513
+ profile.role = item.id;
514
+ setTimeout(function(){ goStep(3); }, 280);
515
+ }, profile.role ? [profile.role] : []);
516
+ }
517
+ if (n === 3) {
518
+ var s3 = document.getElementById('s3');
519
+ applyFontJoke(s3);
520
+ var taskHeading = TASK_HEADINGS_BY_ROLE[profile.role] || TASK_HEADING_DEFAULT;
521
+ document.getElementById('s3Heading').textContent = taskHeading;
522
+ buildPills('taskPills', TASKS, true, function(item) {
523
+ profile.tasks = [];
524
+ document.querySelectorAll('#taskPills .pill.selected').forEach(function(p){
525
+ profile.tasks.push(p.dataset.id);
526
+ });
527
+ }, profile.tasks);
528
+ }
529
+ if (n === 6) {
530
+ var s6 = document.getElementById('s6');
531
+ applyFontJoke(s6);
532
+ buildPills('appPills', getRelevantApps(), true, function(item) {
533
+ profile.apps = [];
534
+ document.querySelectorAll('#appPills .pill.selected').forEach(function(p){
535
+ profile.apps.push(p.dataset.id);
536
+ });
537
+ }, profile.apps);
538
+ }
539
+
540
+ document.getElementById('s' + cur).classList.remove('active');
541
+ document.getElementById('s' + n).classList.add('active');
542
+ cur = n;
543
+ updateDots(n);
544
+
545
+ document.getElementById('backBtn').hidden = (n <= 1 || n > 6);
546
+ document.getElementById('footerArea').style.display = (n > 6) ? 'none' : '';
547
+
548
+ if (n === 4) setTimeout(function(){ document.getElementById('nameIn').focus(); }, 80);
549
+ if (n === 5) setTimeout(function(){ document.getElementById('companyIn').focus(); }, 80);
550
+ }
551
+
552
+ function finish() {
553
+ if (!profile.name) profile.name = (document.getElementById('nameIn').value || '').trim();
554
+ if (!profile.company) profile.company = (document.getElementById('companyIn').value || '').trim();
555
+
556
+ document.getElementById('s' + cur).classList.remove('active');
557
+ document.getElementById('sDone').classList.add('active');
558
+ document.getElementById('footerArea').style.display = 'none';
559
+ document.getElementById('backBtn').hidden = true;
560
+
561
+ if (window.slicc) {
562
+ slicc.lick({ action: 'onboarding-complete', data: profile });
563
+ }
564
+ }
565
+
566
+ // ── Wizard bootstrap ───────────────────────────────────────
567
+ // The dip is re-rendered from chat history on every reload, so
568
+ // we self-detect onboarding state by reading \`/shared/.welcomed\`
569
+ // through the dip VFS bridge. If the marker exists the user has
570
+ // already finished onboarding and we show a tiny finished card
571
+ // instead of re-running the wizard. No parent-side handshake
572
+ // needed — the bridge gives the dip read-only VFS access.
573
+ function startWizard() {
574
+ document.getElementById('sDone').classList.remove('active');
575
+ document.getElementById('s1').classList.add('active');
576
+ document.getElementById('footerArea').style.display = '';
577
+
578
+ buildPills('purposePills', PURPOSES, false, function(item) {
579
+ profile.purpose = item.id;
580
+ setTimeout(function(){ goStep(2); }, 280);
581
+ }, profile.purpose ? [profile.purpose] : []);
582
+
583
+ updateDots(1);
584
+ document.getElementById('backBtn').hidden = true;
585
+ document.getElementById('dots').children[5].style.display = 'none';
586
+ }
587
+
588
+ function showAlreadyComplete(text) {
589
+ ['s1','s2','s3','s4','s5','s6'].forEach(function(id){
590
+ var el = document.getElementById(id);
591
+ if (el) el.classList.remove('active');
592
+ });
593
+ document.getElementById('footerArea').style.display = 'none';
594
+ document.getElementById('backBtn').hidden = true;
595
+ document.getElementById('sDoneText').textContent = text || "You're all set.";
596
+ document.getElementById('sDone').classList.add('active');
597
+ }
598
+
599
+ // Hide every step until we know which one to show. We never
600
+ // leave the user stuck on a blank pane: even if the bridge
601
+ // fails we fall through to the wizard.
602
+ ['s1','s2','s3','s4','s5','s6','sDone'].forEach(function(id){
603
+ var el = document.getElementById(id);
604
+ if (el) el.classList.remove('active');
605
+ });
606
+
607
+ function bootByMarker() {
608
+ if (!window.slicc || typeof slicc.exists !== 'function') {
609
+ startWizard();
610
+ return;
611
+ }
612
+ Promise.resolve(slicc.exists('/shared/.welcomed')).then(
613
+ function(welcomed) { welcomed ? showAlreadyComplete() : startWizard(); },
614
+ function() { startWizard(); }
615
+ );
616
+ }
617
+ bootByMarker();
618
+ <\/script>
619
+ </body>
620
+ </html>
621
+ `;export{e as default};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./logger-DDBAeTLF.js";import{n,t as r}from"./record-Z5ZWTUPJ.js";var i=e({detectWelcomeFirstRun:()=>_,hasOnboardingFinalLickInHistory:()=>x,hasWelcomeLickInHistory:()=>h,recordWelcomed:()=>v}),a=t(`welcome-detection`),o=`/shared/.welcomed`,s=`browser-coding-agent`,c=1,l=`sessions`,u=n({folder:r}),d=`[Sprinkle Event: welcome]`;function f(){return new Promise((e,t)=>{let n=indexedDB.open(s,c);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(l)||e.createObjectStore(l,{keyPath:`id`})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error),n.onblocked=()=>{}})}function p(){return f().catch(()=>new Promise((e,t)=>{setTimeout(()=>{f().then(e,t)},120)}))}async function m(){let e=await p();try{return await new Promise((t,n)=>{let r=e.transaction(l,`readonly`).objectStore(l).get(u);r.onsuccess=()=>t(r.result??null),r.onerror=()=>n(r.error)})}finally{e.close()}}async function h(){try{let e=await m();return!e||!Array.isArray(e.messages)?!1:e.messages.some(e=>g(e))}catch(e){return a.warn(`Failed to scan cone chat session for welcome lick`,{error:e instanceof Error?e.message:String(e)}),!1}}function g(e){let t=e.content;return typeof t==`string`?t.includes(d):Array.isArray(t)?t.some(e=>{if(typeof e==`string`)return e.includes(d);if(e&&typeof e==`object`){let t=e.text;if(typeof t==`string`)return t.includes(d)}return!1}):!1}async function _(e){let t=!1;try{t=await e.exists(o)}catch(e){return a.warn(`Failed to read welcomed marker`,{path:o,error:e instanceof Error?e.message:String(e)}),{isFirstRun:!1}}return t||await h()?{isFirstRun:!1}:{isFirstRun:!0}}async function v(e){await e.writeFile(o,`1`)}var y=`"action":"onboarding-complete-with-provider"`;function b(e){let t=e.content;return typeof t==`string`?t.includes(y):Array.isArray(t)?t.some(e=>{if(typeof e==`string`)return e.includes(y);if(e&&typeof e==`object`){let t=e.text;if(typeof t==`string`)return t.includes(y)}return!1}):!1}async function x(){try{let e=await m();return!e||!Array.isArray(e.messages)?!1:e.messages.some(e=>b(e))}catch(e){return a.warn(`Failed to scan cone chat session for final lick`,{error:e instanceof Error?e.message:String(e)}),!1}}export{v as n,i as r,_ as t};
1
+ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./logger-DDBAeTLF.js";import{n,t as r}from"./record-Cy655bTh.js";var i=e({detectWelcomeFirstRun:()=>_,hasOnboardingFinalLickInHistory:()=>x,hasWelcomeLickInHistory:()=>h,recordWelcomed:()=>v}),a=t(`welcome-detection`),o=`/shared/.welcomed`,s=`browser-coding-agent`,c=1,l=`sessions`,u=n({folder:r}),d=`[Sprinkle Event: welcome]`;function f(){return new Promise((e,t)=>{let n=indexedDB.open(s,c);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(l)||e.createObjectStore(l,{keyPath:`id`})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error),n.onblocked=()=>{}})}function p(){return f().catch(()=>new Promise((e,t)=>{setTimeout(()=>{f().then(e,t)},120)}))}async function m(){let e=await p();try{return await new Promise((t,n)=>{let r=e.transaction(l,`readonly`).objectStore(l).get(u);r.onsuccess=()=>t(r.result??null),r.onerror=()=>n(r.error)})}finally{e.close()}}async function h(){try{let e=await m();return!e||!Array.isArray(e.messages)?!1:e.messages.some(e=>g(e))}catch(e){return a.warn(`Failed to scan cone chat session for welcome lick`,{error:e instanceof Error?e.message:String(e)}),!1}}function g(e){let t=e.content;return typeof t==`string`?t.includes(d):Array.isArray(t)?t.some(e=>{if(typeof e==`string`)return e.includes(d);if(e&&typeof e==`object`){let t=e.text;if(typeof t==`string`)return t.includes(d)}return!1}):!1}async function _(e){let t=!1;try{t=await e.exists(o)}catch(e){return a.warn(`Failed to read welcomed marker`,{path:o,error:e instanceof Error?e.message:String(e)}),{isFirstRun:!1}}return t||await h()?{isFirstRun:!1}:{isFirstRun:!0}}async function v(e){await e.writeFile(o,`1`)}var y=`"action":"onboarding-complete-with-provider"`;function b(e){let t=e.content;return typeof t==`string`?t.includes(y):Array.isArray(t)?t.some(e=>{if(typeof e==`string`)return e.includes(y);if(e&&typeof e==`object`){let t=e.text;if(typeof t==`string`)return t.includes(y)}return!1}):!1}async function x(){try{let e=await m();return!e||!Array.isArray(e.messages)?!1:e.messages.some(e=>b(e))}catch(e){return a.warn(`Failed to scan cone chat session for final lick`,{error:e instanceof Error?e.message:String(e)}),!1}}export{v as n,i as r,_ as t};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/speak-BSK3Souh.js","assets/preload-helper-Czpn1I53.js","assets/logger-DDBAeTLF.js","assets/runtime-env-Dlaokqg1.js","assets/runtime-env-CgsZ7LTp.js","assets/runtime-env-E-i2SW1s.js","assets/src-CAWTvdAa.js","assets/speech-assets-bridge-CFYafE89.js","assets/transformers-env-DPjdc2EQ.js","assets/proxied-fetch-BGeNrvQ4.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/base64-DpPqYZJF.js","assets/fetch-body-D2PwksUW.js","assets/api-endpoint-GRCyib6X.js","assets/shared-CddfUR6k.js","assets/mime-types-ugOWOUZ9.js","assets/transformers.web-Cg_-cFJu.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-Czpn1I53.js";import{t}from"./logger-DDBAeTLF.js";import{a as n,n as r,o as i,r as a,t as o}from"./transformers-env-DPjdc2EQ.js";var s=t(`speech:whisper`),c=null,l=`idle`,u=null,d=new Set;function f(){return l}function p(){return u}function m(e){return e&&d.add(e),c||=(l=`loading`,g().then(e=>(l=`ready`,h(),e),e=>{throw l=`failed`,c=null,s.error(`whisper load failed`,e),e})),c}function h(){e(async()=>{let{kokoroWarmup:e}=await import(`./speak-BSK3Souh.js`);return{kokoroWarmup:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])).then(({kokoroWarmup:e})=>e()).catch(e=>s.warn(`kokoro warmup (chained after whisper) failed`,e))}async function g(){let{pipeline:t,env:c}=await e(async()=>{let{pipeline:e,env:t}=await import(`./transformers.web-Cg_-cFJu.js`);return{pipeline:e,env:t}},__vite__mapDeps([16,10,1]));r(c),await o(n),await a();let l=i(),f=e=>{if(e?.file){if(e.status===`progress`)l.update(e.file,e.loaded??0,e.total??0);else if(e.status===`done`)l.complete(e.file);else return;u=l.snapshot();for(let e of d)e(u)}},p=async e=>await t(`automatic-speech-recognition`,n,{device:e,dtype:e===`webgpu`?`fp32`:`q8`,progress_callback:f}),m=typeof navigator<`u`&&`gpu`in navigator,h;if(m)try{h=await p(`webgpu`)}catch(e){s.warn(`whisper webgpu init failed; retrying on wasm`,e),h=await p(`wasm`)}else h=await p(`wasm`);return s.info(`whisper ready`,{model:n,device:m?`webgpu`:`wasm`}),{async transcribe(e,t){let n=performance.now(),r=await h(e,{chunk_length_s:30,task:`transcribe`,...t?.language?{language:t.language}:{}}),i=Array.isArray(r)?r.map(e=>e.text??``).join(` `):r.text??``;return s.info(`whisper transcribe`,{elapsedMs:Math.round(performance.now()-n),audioSeconds:Math.round(e.length/160)/100,numThreads:c.backends?.onnx?.wasm?.numThreads,device:m?`webgpu`:`wasm`}),i.trim()}}}var _=16e3;async function v(e){if(typeof AudioContext>`u`||typeof OfflineAudioContext>`u`)throw Error(`audio decoding requires a window/page realm (AudioContext unavailable)`);let t=new AudioContext,n;try{n=await t.decodeAudioData(e.slice(0))}finally{await t.close().catch(()=>{})}let r=Math.max(1,Math.ceil(n.duration*_)),i=new OfflineAudioContext(1,r,_),a=i.createBufferSource();return a.buffer=n,a.connect(i.destination),a.start(),(await i.startRendering()).getChannelData(0).slice(0)}var y=t(`speech:whisper-session`),b=2e3,x=500,S=5e3,C=3e4,w=(e,t,n)=>new Promise((r,i)=>{let a=setTimeout(()=>i(Error(`${n} timed out after ${t}ms`)),t);e.then(e=>{clearTimeout(a),r(e)},e=>{clearTimeout(a),i(e)})});function T(e){return e?.split(`-`)[0]?.toLowerCase()||void 0}async function E(e,t){let n;if(t.stream)n=t.stream;else{if(!navigator.mediaDevices?.getUserMedia)throw Error(`microphone capture unavailable in this realm`);n=await navigator.mediaDevices.getUserMedia({audio:t.deviceId&&t.deviceId!=="default"?{deviceId:{exact:t.deviceId}}:!0})}let r=new MediaRecorder(n),i=[],a=T(t.lang),o=!1,s=!1;r.ondataavailable=e=>{e.data.size>0&&i.push(e.data)};let c=async()=>{if(i.length===0)return``;let t=await v(await new Blob(i,{type:r.mimeType||`audio/webm`}).arrayBuffer());return e.transcribe(t,{language:a})},l=Promise.resolve(``),u=()=>{let e=l.catch(()=>``).then(()=>c());return l=e.catch(()=>``),e},d=setInterval(()=>{o||s||i.length===0||(o=!0,u().then(e=>{!s&&e&&t.onPartial?.(e)}).catch(e=>{y.warn(`partial transcription failed`,e)}).finally(()=>{o=!1}))},b),f=()=>{if(clearInterval(d),r.state!==`inactive`)try{r.stop()}catch{}for(let e of n.getTracks())e.stop()},p=()=>new Promise(e=>{if(r.state===`inactive`){e();return}r.onstop=()=>e();try{r.stop()}catch{e()}});return r.start(x),{async stop(){if(s)return``;s=!0,clearInterval(d);try{await w(p(),S,`recorder flush`);for(let e of n.getTracks())e.stop();return await w(u(),C,`transcription`)}catch(e){for(let e of n.getTracks())e.stop();let r=e instanceof Error?e.message:String(e);return t.onError?.(`transcription failed: ${r}`),``}},cancel(){s||(s=!0,f())}}}export{p as a,m as i,T as n,f as o,v as r,E as t};