sliccy 6.111.0 → 6.112.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 (124) hide show
  1. package/README.md +36 -21
  2. package/dist/ui/.vite/manifest.json +173 -173
  3. package/dist/ui/assets/{CLAUDE-Dh_K8EM5.js → CLAUDE-mcg5-RUQ.js} +1 -1
  4. package/dist/ui/assets/__vite-browser-external-W3MAW4_4.js +1 -0
  5. package/dist/ui/assets/{account-store-5huAVUJd.js → account-store-Ct0RR2_l.js} +1 -1
  6. package/dist/ui/assets/{account-store-C2d9XYrH.js → account-store-DnZk5369.js} +1 -1
  7. package/dist/ui/assets/{adobe-6J5g6dZ-.js → adobe-DqRXPZU0.js} +1 -1
  8. package/dist/ui/assets/{adobe-DdMgATM4.js → adobe-SBvTxzul.js} +1 -1
  9. package/dist/ui/assets/{agent-bridge-wRC_zS0T.js → agent-bridge-CSsjV80i.js} +1 -1
  10. package/dist/ui/assets/{agent-panels-D4R-CbBf.js → agent-panels-RBzCnoYl.js} +1 -1
  11. package/dist/ui/assets/{apply-layout-CljC_Ya3.js → apply-layout-DV-uG3K1.js} +1 -1
  12. package/dist/ui/assets/{apps-Ci2ypCzp.js → apps-DJl9SnOm.js} +1 -1
  13. package/dist/ui/assets/{azure-openai-CafCXVCP.js → azure-openai-C4Bm7hwp.js} +1 -1
  14. package/dist/ui/assets/{azure-openai-oQR1AY3j.js → azure-openai-DBhzZIKx.js} +1 -1
  15. package/dist/ui/assets/{bedrock-camp-Zp962PCr.js → bedrock-camp-Djf-aXdl.js} +1 -1
  16. package/dist/ui/assets/{bedrock-camp-S7nnwRZY.js → bedrock-camp-H3Byazn0.js} +1 -1
  17. package/dist/ui/assets/{cerebras-asnRP0OK.js → cerebras-BmWnoBBG.js} +1 -1
  18. package/dist/ui/assets/{cerebras-DBILSiEr.js → cerebras-DIssn811.js} +1 -1
  19. package/dist/ui/assets/claude-model-version-BJLrDjmH.js +2 -0
  20. package/dist/ui/assets/compat-uEPf6-XW.js +1 -0
  21. package/dist/ui/assets/{connect-surface-CQ2QXO1o.js → connect-surface-CuHKBlHU.js} +1 -1
  22. package/dist/ui/assets/{core-CGasZgKz.js → core-DLUk8UTo.js} +1 -1
  23. package/dist/ui/assets/{cost-command-DNKXuXCE.js → cost-command-XUDMFE1u.js} +651 -651
  24. package/dist/ui/assets/{directed-approval-C5DlHmLq.js → directed-approval-B0vR-xHi.js} +1 -1
  25. package/dist/ui/assets/{fs-DsFTKWgZ.js → fs-D3jTWUfp.js} +1 -1
  26. package/dist/ui/assets/{fs-CPJfgVh0.js → fs-Z9JaRMlc.js} +2 -2
  27. package/dist/ui/assets/{github-BO6153VB.js → github-BWc7IzlU.js} +1 -1
  28. package/dist/ui/assets/{github-copilot-B7S-8vhk.js → github-copilot-BiUt3QOi.js} +1 -1
  29. package/dist/ui/assets/{github-copilot-CeKx2NTf.js → github-copilot-DM2sv6MP.js} +1 -1
  30. package/dist/ui/assets/{github-BhWMVyfS.js → github-g8hma1s-.js} +2 -2
  31. package/dist/ui/assets/{github-install-TZJUKgmh.js → github-install-BURlY7b1.js} +1 -1
  32. package/dist/ui/assets/{github-zip-Cnj2AkBP.js → github-zip-hdc2mCjO.js} +1 -1
  33. package/dist/ui/assets/{guest-tool-gate-DTA3P3jk.js → guest-tool-gate-DqAD8UIy.js} +1 -1
  34. package/dist/ui/assets/{js-realm-worker-Daj7wlpT.js → js-realm-worker-BzNqAe3E.js} +1 -1
  35. package/dist/ui/assets/{kernel-worker-J_TbwK8T.js → kernel-worker-DUG90pHE.js} +601 -670
  36. package/dist/ui/assets/keys-BJ_wrQYL.js +47 -0
  37. package/dist/ui/assets/{legacy-api-aliases-7-tLus57.js → legacy-api-aliases-45zvHmpJ.js} +1 -1
  38. package/dist/ui/assets/{legacy-api-aliases-PgIrFmtQ.js → legacy-api-aliases-jKEvBgOL.js} +1 -1
  39. package/dist/ui/assets/{local-llm-CmEq7Stx.js → local-llm-BejlffU5.js} +1 -1
  40. package/dist/ui/assets/{local-llm-BWQ3He74.js → local-llm-DGsKUgWB.js} +1 -1
  41. package/dist/ui/assets/main-DE5NcC_K.js +22 -0
  42. package/dist/ui/assets/{mistral-conversations-D3ozqDno.js → mistral-conversations-DSJIHP5s.js} +1 -1
  43. package/dist/ui/assets/{mistral-conversations-DGAiQBmP.js → mistral-conversations-s2SRnikE.js} +1 -1
  44. package/dist/ui/assets/{mount-CD64xiPS.js → mount-Cm6WkMCS.js} +3 -3
  45. package/dist/ui/assets/{mount-BfB7iXvU.js → mount-SJyQ8I03.js} +1 -1
  46. package/dist/ui/assets/{mount-recovery-BBOSA9YV.js → mount-recovery-3thhUP1K.js} +1 -1
  47. package/dist/ui/assets/{new-session-nSS-DCLV.js → new-session-Spu0pu2t.js} +2 -2
  48. package/dist/ui/assets/{oauth-bootstrap-Colw7nkj.js → oauth-bootstrap-D6d2P42O.js} +2 -2
  49. package/dist/ui/assets/{openai-codex-qmfE81HH.js → openai-codex-B32_5SH2.js} +1 -1
  50. package/dist/ui/assets/{openai-codex-hgaXe8rW.js → openai-codex-BiMqDgMs.js} +1 -1
  51. package/dist/ui/assets/openai-completions-9XqUnTtF.js +5 -0
  52. package/dist/ui/assets/openai-completions-Vz0p13Z7.js +5 -0
  53. package/dist/ui/assets/{openrouter-D2LKKYhW.js → openrouter-BSbZ3ATT.js} +1 -1
  54. package/dist/ui/assets/{openrouter-B2_3FEmY.js → openrouter-D2kNjnqQ.js} +1 -1
  55. package/dist/ui/assets/{openrouter-models-B0K1N_Z3.js → openrouter-models-C9w8lxkF.js} +1 -1
  56. package/dist/ui/assets/{openrouter-models-2yZlHiFX.js → openrouter-models-D210d5Hg.js} +1 -1
  57. package/dist/ui/assets/{openrouter-oauth-BwOKdiOL.js → openrouter-oauth-B9HCblfu.js} +1 -1
  58. package/dist/ui/assets/{openrouter-oauth-BhIVrilr.js → openrouter-oauth-CYUPCzfT.js} +1 -1
  59. package/dist/ui/assets/openrouter.models-B-zmcypy.js +1 -0
  60. package/dist/ui/assets/openrouter.models-sZoBa1pg.js +1 -0
  61. package/dist/ui/assets/{panel-rpc-handlers-MZnNKHBC.js → panel-rpc-handlers-DA9jgPFg.js} +2 -2
  62. package/dist/ui/assets/{panelize-shell-DnZjsHE1.js → panelize-shell-r7ZUNNmE.js} +4 -4
  63. package/dist/ui/assets/{provider-CJ3Zf2lk.js → provider-D-n8JTxV.js} +1 -1
  64. package/dist/ui/assets/{provider-CrmAetaJ.js → provider-D_Mcyd65.js} +2 -2
  65. package/dist/ui/assets/{provider-settings-DDq1uOSZ.js → provider-settings-DtX8QafX.js} +1 -1
  66. package/dist/ui/assets/{provider-settings-C6t3FTvi.js → provider-settings-lJ15_FIj.js} +1 -1
  67. package/dist/ui/assets/{provider-store-access-BeYCdCyj.js → provider-store-access-ARm5WMAk.js} +2 -2
  68. package/dist/ui/assets/provider-store-access-bLCIetgg.js +1 -0
  69. package/dist/ui/assets/{providers-Dzua7awM.js → providers-BgIg5UGk.js} +2 -2
  70. package/dist/ui/assets/{providers-igVhiinv.js → providers-Cdjez9CJ.js} +1 -1
  71. package/dist/ui/assets/{py-realm-worker-D1gqcTkl.js → py-realm-worker-BDenrhCJ.js} +1 -1
  72. package/dist/ui/assets/{pyodide-CHDsdvhb.js → pyodide-65Z_RapY.js} +1 -1
  73. package/dist/ui/assets/{pyodide-D43YUXvd.js → pyodide-DPg9Cxfo.js} +2 -2
  74. package/dist/ui/assets/{quick-llm-biFdkUKD.js → quick-llm-DkdkNP4k.js} +1 -1
  75. package/dist/ui/assets/{recovery-screen-Bau5w59K.js → recovery-screen-BLCj_uxC.js} +1 -1
  76. package/dist/ui/assets/{redirect-uri-UNLwkF71.js → redirect-uri-BFXli6MT.js} +1 -1
  77. package/dist/ui/assets/{run-V7i6CRW2.js → run-CALaUw3i.js} +1 -1
  78. package/dist/ui/assets/run-JsM34Jp9.js +111 -0
  79. package/dist/ui/assets/{session-freezer-Pej6xP_h.js → session-freezer-B_HsuQqn.js} +3 -3
  80. package/dist/ui/assets/{setup-feature-flags-remote-Djw73MiT.js → setup-feature-flags-remote-C4CEUb4s.js} +1 -1
  81. package/dist/ui/assets/{setup-standalone-prelude-DVnD2YOt.js → setup-standalone-prelude-CGsnygt2.js} +1 -1
  82. package/dist/ui/assets/{setup-sudo-Sg6jPLd8.js → setup-sudo-BBdJ6Ntp.js} +2 -2
  83. package/dist/ui/assets/{skills-D8XaTxOF.js → skills-CY_PLkC2.js} +1 -1
  84. package/dist/ui/assets/slicc-version-B-KNpfNb.js +1 -0
  85. package/dist/ui/assets/{state-pLijtNur.js → state-TmCwKYAK.js} +1 -1
  86. package/dist/ui/assets/{store-C6JhZrDR.js → store-CuCpxyRs.js} +1 -1
  87. package/dist/ui/assets/{store-D3Nz9k_U.js → store-D3Wfqxnl.js} +1 -1
  88. package/dist/ui/assets/subcommand-flags-BZi7j78Q.js +1 -0
  89. package/dist/ui/assets/{sudo-T-PxlTiH.js → sudo-B8n9fGZL.js} +1 -1
  90. package/dist/ui/assets/{temperature-support-BZ2SNscA.js → temperature-support-C046iRqM.js} +1 -1
  91. package/dist/ui/assets/{upgrade-detection-Dc_Ox92s.js → upgrade-detection-B8cLRhS1.js} +1 -1
  92. package/dist/ui/assets/{wc-attach-D663Nr87.js → wc-attach-BLv3bkWu.js} +2 -2
  93. package/dist/ui/assets/{wc-extension-biCKwlke.js → wc-extension-C6yX-8VH.js} +2 -2
  94. package/dist/ui/assets/{wc-float-label-BYB2OvzB.js → wc-float-label-D8Riywje.js} +1 -1
  95. package/dist/ui/assets/{wc-floatbar-online-D33VmpVZ.js → wc-floatbar-online-t4G-_Eag.js} +1 -1
  96. package/dist/ui/assets/{wc-follower-CJ8peVT_.js → wc-follower-BvIvXrlv.js} +3 -3
  97. package/dist/ui/assets/{wc-follower-oauth-Ce5uqp4l.js → wc-follower-oauth-DaZ4KjyR.js} +1 -1
  98. package/dist/ui/assets/wc-live-BgMD6MtJ.js +8 -0
  99. package/dist/ui/assets/{wc-nav-DrnMXngR.js → wc-nav-KghilmHL.js} +2 -2
  100. package/dist/ui/assets/{wc-onboarding-D3RegjeS.js → wc-onboarding-BIxXKg7T.js} +2 -2
  101. package/dist/ui/assets/{wc-placeholder-CcUDPjiw.js → wc-placeholder-BqWUWbkB.js} +2 -2
  102. package/dist/ui/assets/{wc-settings-CW4RBrLN.js → wc-settings-Bid7FGRK.js} +2 -2
  103. package/dist/ui/assets/{wc-shell-v_L8CKjn.js → wc-shell-qH4tT8jz.js} +93 -93
  104. package/dist/ui/assets/wc-shortcut-config-BT41DyGn.js +47 -0
  105. package/dist/ui/assets/{wc-sprinkles-BwiYA03A.js → wc-sprinkles-DxuXM9le.js} +2 -2
  106. package/dist/ui/assets/{wc-tray-BM36fqHv.js → wc-tray-C3OmqNpc.js} +4 -4
  107. package/dist/ui/assets/{xai-grok-CjNdMwmo.js → xai-grok-DhHIDKnn.js} +1 -1
  108. package/dist/ui/assets/{xai-grok-DMcdPf6b.js → xai-grok-lwYgHQzq.js} +1 -1
  109. package/dist/ui/index.html +8 -8
  110. package/dist/ui/packages/webapp/index.html +8 -8
  111. package/package.json +2 -2
  112. package/dist/ui/assets/__vite-browser-external-CyeY5rFA.js +0 -1
  113. package/dist/ui/assets/claude-model-version-C0HLsjny.js +0 -2
  114. package/dist/ui/assets/compat-Dujkqs4W.js +0 -1
  115. package/dist/ui/assets/keys-0y1eyH9C.js +0 -42
  116. package/dist/ui/assets/main-ZU92NtZw.js +0 -22
  117. package/dist/ui/assets/openai-completions-DzDBZTEZ.js +0 -5
  118. package/dist/ui/assets/openai-completions-EVRbFtIx.js +0 -5
  119. package/dist/ui/assets/openrouter.models-Bku7U90e.js +0 -1
  120. package/dist/ui/assets/openrouter.models-BxrUfzom.js +0 -1
  121. package/dist/ui/assets/provider-store-access-ktUJ0f7H.js +0 -1
  122. package/dist/ui/assets/slicc-version-DkKuMdfp.js +0 -1
  123. package/dist/ui/assets/wc-live-CxJAPZUQ.js +0 -8
  124. package/dist/ui/assets/wc-shortcut-config-CmN4peN6.js +0 -42
@@ -0,0 +1,47 @@
1
+ import{t as e}from"./logger-DDBAeTLF.js";import{d as t,f as n,p as r,u as i}from"./wc-shell-qH4tT8jz.js";var a=`{
2
+ "//": [
3
+ "Keyboard-mode shortcuts. Press Esc anywhere in SLICC to enter keyboard mode;",
4
+ "the keys then work on their own, with no modifier. Edit this file and reload",
5
+ "the tab to change them — it is read once at startup.",
6
+ "",
7
+ "This file holds OVERRIDES only, and ships empty: the shipped keymap lives in",
8
+ "SLICC itself, so whatever you do not mention here follows it, including any",
9
+ "keys a later version adds. Press ? in keyboard mode to see what is bound.",
10
+ "",
11
+ "Each entry is \\"key\\": \\"command\\". A key is a single character (\\"x\\") or a named",
12
+ "key (\\"Enter\\", \\"Tab\\", \\"Backspace\\", \\"Delete\\", \\"Home\\", \\"End\\", \\"ArrowLeft\\",",
13
+ "\\"ArrowRight\\", \\"ArrowUp\\", \\"ArrowDown\\"). Several keys may share one command.",
14
+ "A command with no key left is simply unreachable from the keyboard.",
15
+ "",
16
+ "To REMOVE a binding, set it to null. Deleting a line does NOT remove the key —",
17
+ "it restores whatever SLICC ships for it.",
18
+ "",
19
+ "Commands: composer, nextAgent, prevAgent, newConversation,",
20
+ "newConversationErase, newCone, dropCone, sessions, stop, approvals, attach,",
21
+ "copyReply, copyChat, voice, nextItem, prevItem, leftRail, rightRail, files,",
22
+ "tabs, terminal, memory, monitor, sprinkles, zoom, model, accounts, help.",
23
+ "",
24
+ "Some commands own a list, and the keys pressed straight after them address",
25
+ "THAT list instead of the tab strip: files, memory, sessions and sprinkles.",
26
+ "A digit picks from it (f 3 is the third file, r 9 the oldest archived chat —",
27
+ "9 is always the last one, exactly as it is for agents), and nextItem /",
28
+ "prevItem page through it, looping. With no list open they are next/previous",
29
+ "message in the transcript instead. The list stays addressable for as long as",
30
+ "its keys are still showing on the pill above the composer.",
31
+ "",
32
+ "Esc and the digits 1-9 are reserved: Esc is the mode itself, and the digits",
33
+ "address the tab strip by position (9 is always the last agent).",
34
+ "",
35
+ "Example — the SLICC 6.110 keyboard, if you had it in your fingers:",
36
+ " \\"bindings\\": {",
37
+ " \\"d\\": \\"nextAgent\\", \\"c\\": \\"composer\\", \\"n\\": \\"newConversation\\",",
38
+ " \\"b\\": \\"leftRail\\", \\"x\\": \\"rightRail\\", \\"f\\": \\"files\\", \\"t\\": \\"tabs\\",",
39
+ " \\"e\\": \\"terminal\\", \\"m\\": \\"memory\\", \\"s\\": \\"sprinkles\\",",
40
+ " \\"l\\": \\"model\\", \\"a\\": \\"accounts\\", \\"h\\": \\"help\\", \\"/\\": \\"help\\"",
41
+ " }",
42
+ "",
43
+ "This file is yours — SLICC only writes it when it is missing."
44
+ ],
45
+ "bindings": {}
46
+ }
47
+ `,o=e(`wc-shortcut-config`),s=`/etc/slicc/keys.json`,c=new Set([`Enter`,`Tab`,`Backspace`,`Delete`,`Home`,`End`,`ArrowLeft`,`ArrowRight`,`ArrowUp`,`ArrowDown`]);function l(e){return t.includes(e)?`"${e}" is reserved (Esc toggles the mode; 1-9 address the tab strip)`:[...e].length!==1&&!c.has(e)?`"${e}" is not a key SLICC can bind (use one character, or ${[...c].join(`, `)})`:null}function u(e,t=i){let n={...t},a=[],o;try{o=JSON.parse(e)}catch(e){return a.push(`not valid JSON, keeping the defaults (${e.message})`),{keymap:n,warnings:a}}let s=o?.bindings;if(s===void 0)return a.push(`no "bindings" object, keeping the defaults`),{keymap:n,warnings:a};if(typeof s!=`object`||!s||Array.isArray(s))return a.push(`"bindings" is not an object, keeping the defaults`),{keymap:n,warnings:a};for(let[e,t]of Object.entries(s)){let i=l(e);if(i){a.push(i);continue}if(t===null||t===!1||t===``){delete n[e];continue}if(!r(t)){a.push(`"${e}": ${JSON.stringify(t)} is not a known command`);continue}n[e]=t}return{keymap:n,warnings:a}}function d(e){let t;try{t=JSON.parse(e)?.bindings}catch{return!1}if(typeof t!=`object`||!t||Array.isArray(t))return!1;let r=Object.entries(t);return r.length===Object.keys(n).length&&r.every(([e,t])=>n[e]===t)}function f(e){return e?.code===`ENOENT`}async function p(e){let t=e.logger??o,n;try{let t=await e.reader.readFile(s,{encoding:`utf-8`});n=typeof t==`string`?t:new TextDecoder().decode(t)}catch(n){if(!f(n)){t.warn(`Could not read the shortcut config; keeping the defaults`,{error:n instanceof Error?n.message:String(n)});return}try{await e.writer.mkdir(`/etc/slicc`,{recursive:!0}),await e.writer.writeFile(s,a),t.info(`Seeded ${s}`)}catch(e){t.warn(`Could not seed the shortcut config`,{error:e instanceof Error?e.message:String(e)})}return}if(d(n))try{await e.writer.writeFile(s,a),t.info(`Replaced the untouched v1 keymap at ${s}`);return}catch(e){t.warn(`Could not replace the v1 shortcut config; keeping it`,{error:e instanceof Error?e.message:String(e)})}let{keymap:r,warnings:i}=u(n);for(let e of i)t.warn(`${s}: ${e}`);e.apply(r)}export{p as loadShortcutConfig};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/legacy-styles-DcRu2WCJ.js","assets/preload-helper-Czpn1I53.js","assets/sprinkle-manager-DjLsrQSV.js","assets/logger-DDBAeTLF.js","assets/telemetry-BVzuNdvW.js","assets/runtime-env-Dlaokqg1.js","assets/runtime-env-CgsZ7LTp.js","assets/runtime-env-E-i2SW1s.js","assets/src-CAWTvdAa.js","assets/panel-rpc-B3MSVImO.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/sprinkle-renderer-1C1DNVyK.js","assets/theme-CXRqxpw6.js","assets/theme-engine-By4GU_Wc.js","assets/sprinkle-bridge-D4YmJlZ6.js","assets/hid-device-registry-B2R-0rNt.js","assets/serial-port-registry-CCqklAEr.js","assets/usb-operations-BBXJ4GF8.js","assets/usb-device-registry-CRsCisej.js","assets/shared-2T6O01rS.js","assets/mime-types-k2E6ulyv.js","assets/fetch-body-D2PwksUW.js","assets/sprinkle-instances-B8n7h-oP.js","assets/setup-sprinkle-exec-BX_Qq-Su.js","assets/dip-CwdsfUhQ.js","assets/permissions-surface-registry-CilCRwhh.js","assets/quick-llm-biFdkUKD.js","assets/account-store-C2d9XYrH.js","assets/claude-model-version-C0HLsjny.js","assets/models-BSkXF4T6.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-BxrUfzom.js","assets/libesm-BypnjKEL.js","assets/proxied-fetch-CFWkfPNA.js","assets/base64-DJRlyqZu.js","assets/api-endpoint-GRCyib6X.js","assets/float-topology-BYb7rxY5.js","assets/secret-topology-BE7Eyd3P.js","assets/secrets-bridge-client-H8-Z1RVR.js","assets/port-bridge-client-Cti-DmEY.js","assets/image-markers-CxJ9ZBgw.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-Dzua7awM.js","assets/bedrock-camp-compat-CgBMwna8.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-BJsliYCh.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Czpn1I53.js";import{n as t}from"./runtime-env-Dlaokqg1.js";import"./runtime-env-CgsZ7LTp.js";import{t as n}from"./wc-unit-context-BaavrvD8.js";var r=`sprinkle:`,i=`slicc-sprinkle-icons`;function a(){try{let e=localStorage.getItem(i);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 o(e){try{let t=new Set(e),n=Object.fromEntries(Object.entries(a()).filter(([e])=>t.has(e)));localStorage.setItem(i,JSON.stringify(n))}catch{}}function s(e,t){try{localStorage.setItem(i,JSON.stringify({...a(),[e]:t}))}catch{}}function c(e){return typeof e==`string`&&/^[a-z0-9]+(-[a-z0-9]+)*$/.test(e)}function l(e){return`${r}${e}`}function u(e){return e?.startsWith(r)?e.slice(9):null}var d=`chat`,f=new Set([`files`,`term`,`memory`,`monitor`]),p=`right`,m=p;function h(e){return f.has(e)}var g=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(l(e),m)}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)}h(t)&&this.#a.onToolPanelActivate?.(t)}moveSurfaceToZone(e,t){this.#o()?.moveSurfaceToZone(e,t)}removeSurface(e){this.#o()?.removeSurface(e),h(e)&&this.#a.onToolPanelDeactivate?.(e)}setSurfaceSize(e,t){return this.#o()?.setSurfaceSize(e,t)??!1}seedDockItems(e){let t=a(),n=!1;for(let r of e)this.#t.has(r)||(this.#r.add(r),this.#t.set(r,{id:l(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=l(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(m,i)}#c(e,t){let n=l(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(l(e))}#u(e,t,n){this.#r.delete(e);let r=this.#d(e,n);this.#t.set(e,{id:l(e),icon:r,label:t,kind:`sprinkle`}),this.#p()}#d(e,t){return c(t)?t:a()[e]??`sparkles`}#f(e){this.#n.has(e)||(this.#t.delete(e),this.#p())}#p(){this.#e.dock.items=[...this.#t.values()]}},_=180;function v(e){e.dock.addEventListener(`slicc-dock-longpress`,t=>{let n=t.detail?.id;if(!n||u(n)===null)return;let r=n.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`),i=t=>{let n=e.dockTree.querySelector(`[surface-id="${r}"]`);if(n&&!n.closest(`.dock-tree__parking`)){n.requestFullscreen?.()?.catch(()=>{});return}t<=0||requestAnimationFrame(()=>i(t-1))};i(_)})}async function y(r){let{refs:i,client:a,fs:s,instanceId:c,onAttachImage:l,onToolPanelActivate:d,onToolPanelDeactivate:f,hostSprinkleSurface:m,removeSprinkleSurface:_,log:y}=r,x=new g(i,{onToolPanelActivate:d,onToolPanelDeactivate:f,hostSprinkleSurface:m,removeSprinkleSurface:_}),{loadSprinkleStyles:S}=await e(async()=>{let{loadSprinkleStyles:e}=await import(`./legacy-styles-DcRu2WCJ.js`);return{loadSprinkleStyles:e}},__vite__mapDeps([0,1]));await S();let{SprinkleManager:C,readKnownSprinkleNames:w}=await e(async()=>{let{SprinkleManager:e,readKnownSprinkleNames:t}=await import(`./sprinkle-manager-DjLsrQSV.js`);return{SprinkleManager:e,readKnownSprinkleNames:t}},__vite__mapDeps([2,3,4,1,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));x.seedDockItems(w());let{installSprinkleManagerHandlerOverChannel:T}=await e(async()=>{let{installSprinkleManagerHandlerOverChannel:e}=await import(`./sprinkle-bridge-channel-Clwu-X1e.js`);return{installSprinkleManagerHandlerOverChannel:e}},[]),{createSprinkleExecHandler:E}=await e(async()=>{let{createSprinkleExecHandler:e}=await import(`./setup-sprinkle-exec-BX_Qq-Su.js`);return{createSprinkleExecHandler:e}},__vite__mapDeps([23,1])),{setDipExecHandler:D}=await e(async()=>{let{setDipExecHandler:e}=await import(`./dip-CwdsfUhQ.js`).then(e=>e.n);return{setDipExecHandler:e}},__vite__mapDeps([24,10,1,5,6,7,8,25,15,16,17,18,11,12,13,3,14,19,20,21])),O=t(),k=E(a),A=new C(s,e=>{e.type===`sprinkle`&&e.sprinkleName&&a.sendSprinkleLick(e.sprinkleName,e.body,e.targetScoop)},x.callbacks(),()=>{let e=n(a.getScoops());e&&a.stopScoop(e.jid)},{...O?{autoOpenBehavior:`attention`}:{},inlineSprinkles:new Set([`welcome`]),execHandler:k,onAttachImage:l??(()=>{})});if(window.__slicc_sprinkleManager=A,D(k),c!==void 0){let e=T(A,{instanceId:c});window.addEventListener(`beforeunload`,()=>e(),{once:!0})}else if(O){let{handleSprinkleOp:t}=await e(async()=>{let{handleSprinkleOp:e}=await import(`./sprinkle-op-handler-Cb1pl8Ok.js`);return{handleSprinkleOp:e}},[]);a.setSprinkleOpHandler(e=>{let{id:n,op:r,name:i,data:a,target:o}=e;t(A,n,r,i,a,o)})}i.dock.addEventListener(`slicc-dock-select`,e=>{let t=e.detail?.id,n=u(t);if(n){A.activate(n).catch(e=>y.error(`WC sprinkle activate failed`,e));return}t&&h(t)&&x.placeSurface(p,t)}),i.dock.addEventListener(`slicc-dock-collapse`,e=>{let t=e.detail?.id;if(!t)return;if(h(t)){x.removeSurface(t);return}let n=u(t);n&&A.minimize(n)}),v(i);let j=!1,M=async()=>{if(await A.refresh(),A.available().length>0){x.dropUnconfirmedSeeds();let t=A.available().map(e=>e.name),{pruneKnownSprinkleNames:n}=await e(async()=>{let{pruneKnownSprinkleNames:e}=await import(`./sprinkle-manager-DjLsrQSV.js`);return{pruneKnownSprinkleNames:e}},__vite__mapDeps([2,3,4,1,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));n(t),o(t)}await A.restoreOpenSprinkles().catch(e=>{y.warn(`WC shell: failed to restore open sprinkles`,e)}),j||(j=!0,e(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-biFdkUKD.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([26,10,27,1,28,29,30,31,32,33,34,3,8,35,36,5,21,37,38,7,39,40,41,42,43,44,9,45,46,47])).then(({pickLucideIcon:e})=>b(x,A.available(),t=>e({subject:t}))).catch(()=>void 0).finally(()=>{j=!1}))};return M().catch(e=>y.warn(`WC shell: initial sprinkle resync failed`,e)),{manager:A,zone:x,resync:M}}async function b(e,t,n){let r=new Set(e.defaultIconNames()),i=a();for(let a of t){if(!r.has(a.name)||c(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&&(s(a.name,o),e.updateDockIcon(a.name,o))}}export{d as CHAT_SURFACE_ID,g as WcSprinkleZone,y as wireWcSprinkles};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/legacy-styles-DcRu2WCJ.js","assets/preload-helper-Czpn1I53.js","assets/sprinkle-manager-DjLsrQSV.js","assets/logger-DDBAeTLF.js","assets/telemetry-BVzuNdvW.js","assets/runtime-env-Dlaokqg1.js","assets/runtime-env-CgsZ7LTp.js","assets/runtime-env-E-i2SW1s.js","assets/src-CAWTvdAa.js","assets/panel-rpc-B3MSVImO.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/sprinkle-renderer-1C1DNVyK.js","assets/theme-CXRqxpw6.js","assets/theme-engine-By4GU_Wc.js","assets/sprinkle-bridge-D4YmJlZ6.js","assets/hid-device-registry-B2R-0rNt.js","assets/serial-port-registry-CCqklAEr.js","assets/usb-operations-BBXJ4GF8.js","assets/usb-device-registry-CRsCisej.js","assets/shared-2T6O01rS.js","assets/mime-types-k2E6ulyv.js","assets/fetch-body-D2PwksUW.js","assets/sprinkle-instances-B8n7h-oP.js","assets/setup-sprinkle-exec-BX_Qq-Su.js","assets/dip-CwdsfUhQ.js","assets/permissions-surface-registry-CilCRwhh.js","assets/quick-llm-DkdkNP4k.js","assets/account-store-DnZk5369.js","assets/claude-model-version-BJLrDjmH.js","assets/models-BSkXF4T6.js","assets/diagnostics-DN_idNHx.js","assets/provider-env-CTOcDKrQ.js","assets/__vite-browser-external-5eBdwsFd.js","assets/openrouter.models-B-zmcypy.js","assets/libesm-BypnjKEL.js","assets/proxied-fetch-CFWkfPNA.js","assets/base64-DJRlyqZu.js","assets/api-endpoint-GRCyib6X.js","assets/float-topology-BYb7rxY5.js","assets/secret-topology-BE7Eyd3P.js","assets/secrets-bridge-client-H8-Z1RVR.js","assets/port-bridge-client-Cti-DmEY.js","assets/image-markers-CxJ9ZBgw.js","assets/tool-ui-eSQ1g2I1.js","assets/providers-BgIg5UGk.js","assets/bedrock-camp-compat-CgBMwna8.js","assets/llm-session-id-bZQs6gBN.js","assets/icons-BJsliYCh.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-Czpn1I53.js";import{n as t}from"./runtime-env-Dlaokqg1.js";import"./runtime-env-CgsZ7LTp.js";import{t as n}from"./wc-unit-context-BaavrvD8.js";var r=`sprinkle:`,i=`slicc-sprinkle-icons`;function a(){try{let e=localStorage.getItem(i);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 o(e){try{let t=new Set(e),n=Object.fromEntries(Object.entries(a()).filter(([e])=>t.has(e)));localStorage.setItem(i,JSON.stringify(n))}catch{}}function s(e,t){try{localStorage.setItem(i,JSON.stringify({...a(),[e]:t}))}catch{}}function c(e){return typeof e==`string`&&/^[a-z0-9]+(-[a-z0-9]+)*$/.test(e)}function l(e){return`${r}${e}`}function u(e){return e?.startsWith(r)?e.slice(9):null}var d=`chat`,f=new Set([`files`,`term`,`memory`,`monitor`]),p=`right`,m=p;function h(e){return f.has(e)}var g=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(l(e),m)}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)}h(t)&&this.#a.onToolPanelActivate?.(t)}moveSurfaceToZone(e,t){this.#o()?.moveSurfaceToZone(e,t)}removeSurface(e){this.#o()?.removeSurface(e),h(e)&&this.#a.onToolPanelDeactivate?.(e)}setSurfaceSize(e,t){return this.#o()?.setSurfaceSize(e,t)??!1}seedDockItems(e){let t=a(),n=!1;for(let r of e)this.#t.has(r)||(this.#r.add(r),this.#t.set(r,{id:l(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=l(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(m,i)}#c(e,t){let n=l(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(l(e))}#u(e,t,n){this.#r.delete(e);let r=this.#d(e,n);this.#t.set(e,{id:l(e),icon:r,label:t,kind:`sprinkle`}),this.#p()}#d(e,t){return c(t)?t:a()[e]??`sparkles`}#f(e){this.#n.has(e)||(this.#t.delete(e),this.#p())}#p(){this.#e.dock.items=[...this.#t.values()]}},_=180;function v(e){e.dock.addEventListener(`slicc-dock-longpress`,t=>{let n=t.detail?.id;if(!n||u(n)===null)return;let r=n.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`),i=t=>{let n=e.dockTree.querySelector(`[surface-id="${r}"]`);if(n&&!n.closest(`.dock-tree__parking`)){n.requestFullscreen?.()?.catch(()=>{});return}t<=0||requestAnimationFrame(()=>i(t-1))};i(_)})}async function y(r){let{refs:i,client:a,fs:s,instanceId:c,onAttachImage:l,onToolPanelActivate:d,onToolPanelDeactivate:f,hostSprinkleSurface:m,removeSprinkleSurface:_,log:y}=r,x=new g(i,{onToolPanelActivate:d,onToolPanelDeactivate:f,hostSprinkleSurface:m,removeSprinkleSurface:_}),{loadSprinkleStyles:S}=await e(async()=>{let{loadSprinkleStyles:e}=await import(`./legacy-styles-DcRu2WCJ.js`);return{loadSprinkleStyles:e}},__vite__mapDeps([0,1]));await S();let{SprinkleManager:C,readKnownSprinkleNames:w}=await e(async()=>{let{SprinkleManager:e,readKnownSprinkleNames:t}=await import(`./sprinkle-manager-DjLsrQSV.js`);return{SprinkleManager:e,readKnownSprinkleNames:t}},__vite__mapDeps([2,3,4,1,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));x.seedDockItems(w());let{installSprinkleManagerHandlerOverChannel:T}=await e(async()=>{let{installSprinkleManagerHandlerOverChannel:e}=await import(`./sprinkle-bridge-channel-Clwu-X1e.js`);return{installSprinkleManagerHandlerOverChannel:e}},[]),{createSprinkleExecHandler:E}=await e(async()=>{let{createSprinkleExecHandler:e}=await import(`./setup-sprinkle-exec-BX_Qq-Su.js`);return{createSprinkleExecHandler:e}},__vite__mapDeps([23,1])),{setDipExecHandler:D}=await e(async()=>{let{setDipExecHandler:e}=await import(`./dip-CwdsfUhQ.js`).then(e=>e.n);return{setDipExecHandler:e}},__vite__mapDeps([24,10,1,5,6,7,8,25,15,16,17,18,11,12,13,3,14,19,20,21])),O=t(),k=E(a),A=new C(s,e=>{e.type===`sprinkle`&&e.sprinkleName&&a.sendSprinkleLick(e.sprinkleName,e.body,e.targetScoop)},x.callbacks(),()=>{let e=n(a.getScoops());e&&a.stopScoop(e.jid)},{...O?{autoOpenBehavior:`attention`}:{},inlineSprinkles:new Set([`welcome`]),execHandler:k,onAttachImage:l??(()=>{})});if(window.__slicc_sprinkleManager=A,D(k),c!==void 0){let e=T(A,{instanceId:c});window.addEventListener(`beforeunload`,()=>e(),{once:!0})}else if(O){let{handleSprinkleOp:t}=await e(async()=>{let{handleSprinkleOp:e}=await import(`./sprinkle-op-handler-Cb1pl8Ok.js`);return{handleSprinkleOp:e}},[]);a.setSprinkleOpHandler(e=>{let{id:n,op:r,name:i,data:a,target:o}=e;t(A,n,r,i,a,o)})}i.dock.addEventListener(`slicc-dock-select`,e=>{let t=e.detail?.id,n=u(t);if(n){A.activate(n).catch(e=>y.error(`WC sprinkle activate failed`,e));return}t&&h(t)&&x.placeSurface(p,t)}),i.dock.addEventListener(`slicc-dock-collapse`,e=>{let t=e.detail?.id;if(!t)return;if(h(t)){x.removeSurface(t);return}let n=u(t);n&&A.minimize(n)}),v(i);let j=!1,M=async()=>{if(await A.refresh(),A.available().length>0){x.dropUnconfirmedSeeds();let t=A.available().map(e=>e.name),{pruneKnownSprinkleNames:n}=await e(async()=>{let{pruneKnownSprinkleNames:e}=await import(`./sprinkle-manager-DjLsrQSV.js`);return{pruneKnownSprinkleNames:e}},__vite__mapDeps([2,3,4,1,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));n(t),o(t)}await A.restoreOpenSprinkles().catch(e=>{y.warn(`WC shell: failed to restore open sprinkles`,e)}),j||(j=!0,e(async()=>{let{pickLucideIcon:e}=await import(`./quick-llm-DkdkNP4k.js`).then(e=>e.n);return{pickLucideIcon:e}},__vite__mapDeps([26,10,27,1,28,29,30,31,32,33,34,3,8,35,36,5,21,37,38,7,39,40,41,42,43,44,9,45,46,47])).then(({pickLucideIcon:e})=>b(x,A.available(),t=>e({subject:t}))).catch(()=>void 0).finally(()=>{j=!1}))};return M().catch(e=>y.warn(`WC shell: initial sprinkle resync failed`,e)),{manager:A,zone:x,resync:M}}async function b(e,t,n){let r=new Set(e.defaultIconNames()),i=a();for(let a of t){if(!r.has(a.name)||c(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&&(s(a.name,o),e.updateDockIcon(a.name,o))}}export{d as CHAT_SURFACE_ID,g as WcSprinkleZone,y as wireWcSprinkles};