sliccy 6.111.1 → 6.112.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/README.md +36 -21
  2. package/dist/ui/.vite/manifest.json +136 -136
  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-Dk864FHC.js → account-store--nuF-RGJ.js} +1 -1
  6. package/dist/ui/assets/{account-store-BdFoD9Iq.js → account-store-BeAa98D1.js} +1 -1
  7. package/dist/ui/assets/{adobe-KN7f5fSs.js → adobe-B00trSo1.js} +1 -1
  8. package/dist/ui/assets/{adobe-DjQvaWEp.js → adobe-CidVPXRa.js} +1 -1
  9. package/dist/ui/assets/{agent-bridge-CEzNI4uW.js → agent-bridge-BoLNvuOE.js} +1 -1
  10. package/dist/ui/assets/{agent-panels-CG2OdZhY.js → agent-panels-Tl57pRxc.js} +1 -1
  11. package/dist/ui/assets/{apply-layout-Dej_1ENk.js → apply-layout-DZt5RV9q.js} +1 -1
  12. package/dist/ui/assets/{apps-Dk5DWzEF.js → apps-DhjdsdYb.js} +1 -1
  13. package/dist/ui/assets/{azure-openai-j8w-T0be.js → azure-openai-Bk8F_5Ct.js} +1 -1
  14. package/dist/ui/assets/{azure-openai-Bc1aD9r8.js → azure-openai-C7ikeAJM.js} +1 -1
  15. package/dist/ui/assets/{cerebras-B1bWYwUZ.js → cerebras-7NXHhdw9.js} +1 -1
  16. package/dist/ui/assets/{cerebras-CXRuH-bI.js → cerebras-C-b4420j.js} +1 -1
  17. package/dist/ui/assets/{connect-surface-D2UbJj1L.js → connect-surface-HN8UkePG.js} +1 -1
  18. package/dist/ui/assets/{cost-command-DNKXuXCE.js → cost-command-XUDMFE1u.js} +651 -651
  19. package/dist/ui/assets/{directed-approval-Dbcc9D76.js → directed-approval-BqGD0uli.js} +1 -1
  20. package/dist/ui/assets/{fs-B_hy7uNG.js → fs-BMP_fMEC.js} +2 -2
  21. package/dist/ui/assets/{fs-BQkaC6_t.js → fs-FMv2mTn9.js} +1 -1
  22. package/dist/ui/assets/{github-CYukaT54.js → github-Dnmx9rG9.js} +2 -2
  23. package/dist/ui/assets/{github-DWeVteoC.js → github-McCslPoz.js} +1 -1
  24. package/dist/ui/assets/{github-copilot-2Tz4Y38z.js → github-copilot-CxdF4Fy6.js} +1 -1
  25. package/dist/ui/assets/{github-copilot-BayHh2QX.js → github-copilot-DCIGII9u.js} +1 -1
  26. package/dist/ui/assets/{github-install-Dia_WWnE.js → github-install-B4wNs2LH.js} +1 -1
  27. package/dist/ui/assets/{github-zip-UU1wgUKV.js → github-zip-CqGulfsL.js} +1 -1
  28. package/dist/ui/assets/{js-realm-worker-CoRBv1ot.js → js-realm-worker-ITMN_2K6.js} +1 -1
  29. package/dist/ui/assets/{kernel-worker-DbkOGX9_.js → kernel-worker-Ds3v--4d.js} +601 -670
  30. package/dist/ui/assets/keys-BJ_wrQYL.js +47 -0
  31. package/dist/ui/assets/{local-llm-BwIcXOYh.js → local-llm-DSZm3QFD.js} +1 -1
  32. package/dist/ui/assets/{local-llm-D2BE8VCr.js → local-llm-DewB9FGZ.js} +1 -1
  33. package/dist/ui/assets/main-fHoUORLi.js +22 -0
  34. package/dist/ui/assets/{mount-BBtT_2Wh.js → mount-BtKe9aDF.js} +3 -3
  35. package/dist/ui/assets/{mount-DJCieato.js → mount-DFmEuTiy.js} +1 -1
  36. package/dist/ui/assets/{mount-recovery-BP4avEFc.js → mount-recovery-CMKD-bzt.js} +1 -1
  37. package/dist/ui/assets/{new-session-BoaqnFNG.js → new-session-DeVo5krf.js} +2 -2
  38. package/dist/ui/assets/{oauth-bootstrap-ejPcIYAp.js → oauth-bootstrap-CgDdETL4.js} +2 -2
  39. package/dist/ui/assets/{openai-codex-tK9Ymy_J.js → openai-codex-C1wHRHpH.js} +1 -1
  40. package/dist/ui/assets/{openai-codex-Dzd80Bqc.js → openai-codex-D6RWtriP.js} +1 -1
  41. package/dist/ui/assets/{openrouter-BldGq-II.js → openrouter-R7ci1m2k.js} +1 -1
  42. package/dist/ui/assets/{openrouter-DOyRJmCZ.js → openrouter-S6zAimHH.js} +1 -1
  43. package/dist/ui/assets/{openrouter-oauth-Co31-Nc2.js → openrouter-oauth-B31J13WZ.js} +1 -1
  44. package/dist/ui/assets/{openrouter-oauth-hsqeTHpB.js → openrouter-oauth-C9uW2DM8.js} +1 -1
  45. package/dist/ui/assets/{panel-rpc-handlers-Bvvn6Wna.js → panel-rpc-handlers-Djq6ayLg.js} +2 -2
  46. package/dist/ui/assets/{panelize-shell-Drffk1d2.js → panelize-shell-HCqDW0kS.js} +4 -4
  47. package/dist/ui/assets/{provider-DyUILXQm.js → provider-BdOLjeIN.js} +2 -2
  48. package/dist/ui/assets/{provider-UZ6SYIMm.js → provider-DyZJkoqu.js} +1 -1
  49. package/dist/ui/assets/{provider-settings-CiFTFzD0.js → provider-settings-BCGgAkb4.js} +1 -1
  50. package/dist/ui/assets/{provider-settings-BotXvUaq.js → provider-settings-c6LQDQyN.js} +1 -1
  51. package/dist/ui/assets/provider-store-access-BVEsJXQR.js +1 -0
  52. package/dist/ui/assets/{provider-store-access-D-lQnxJg.js → provider-store-access-CZVIwB2B.js} +2 -2
  53. package/dist/ui/assets/{providers-CM9e1pqz.js → providers-9Yhsk0CM.js} +1 -1
  54. package/dist/ui/assets/{providers-DcuaRlpn.js → providers-BEaf1qJO.js} +2 -2
  55. package/dist/ui/assets/{py-realm-worker-D1gqcTkl.js → py-realm-worker-BDenrhCJ.js} +1 -1
  56. package/dist/ui/assets/{pyodide-CHDsdvhb.js → pyodide-65Z_RapY.js} +1 -1
  57. package/dist/ui/assets/{pyodide-D43YUXvd.js → pyodide-DPg9Cxfo.js} +2 -2
  58. package/dist/ui/assets/{quick-llm-Yd4NmAjf.js → quick-llm-BlrlCIMB.js} +1 -1
  59. package/dist/ui/assets/{recovery-screen-Bzn2K7BJ.js → recovery-screen-e4RP50qV.js} +1 -1
  60. package/dist/ui/assets/run-B7GdGu08.js +111 -0
  61. package/dist/ui/assets/{run-BDNAqwXZ.js → run-BReo7uW0.js} +1 -1
  62. package/dist/ui/assets/{session-freezer-BabHh-bo.js → session-freezer-mJRq9tDS.js} +3 -3
  63. package/dist/ui/assets/{setup-feature-flags-remote-BO5wg1zh.js → setup-feature-flags-remote-D0xfkklT.js} +1 -1
  64. package/dist/ui/assets/{setup-standalone-prelude-9X0NDLxK.js → setup-standalone-prelude-VfWdqiy6.js} +1 -1
  65. package/dist/ui/assets/{setup-sudo-COH_rtDJ.js → setup-sudo-BKrQw1Rt.js} +2 -2
  66. package/dist/ui/assets/{skills-B_O5KEM5.js → skills-ClAcOXt4.js} +1 -1
  67. package/dist/ui/assets/slicc-version-CW-yYQ5m.js +1 -0
  68. package/dist/ui/assets/{state-ZFgSoh-z.js → state-CRJ8EjRP.js} +1 -1
  69. package/dist/ui/assets/{store-BUFg2wOp.js → store-BAvs4zf5.js} +1 -1
  70. package/dist/ui/assets/{store-SwMaH4Qg.js → store-DFXW05cL.js} +1 -1
  71. package/dist/ui/assets/subcommand-flags-BZi7j78Q.js +1 -0
  72. package/dist/ui/assets/{sudo-hqAUt5Sw.js → sudo-DbzYnyAb.js} +1 -1
  73. package/dist/ui/assets/{upgrade-detection-thVGOwOo.js → upgrade-detection-DvObHCch.js} +1 -1
  74. package/dist/ui/assets/{wc-attach-BU_nG52g.js → wc-attach-BKynrUhf.js} +2 -2
  75. package/dist/ui/assets/{wc-extension-DV-_X11Q.js → wc-extension-BGm_6rPO.js} +2 -2
  76. package/dist/ui/assets/{wc-float-label-TnDuRM--.js → wc-float-label-DBomNbxu.js} +1 -1
  77. package/dist/ui/assets/{wc-floatbar-online-BA2ppkqp.js → wc-floatbar-online-B4EXNrH9.js} +1 -1
  78. package/dist/ui/assets/{wc-follower-CUgHtkp2.js → wc-follower-XK-drJQa.js} +3 -3
  79. package/dist/ui/assets/{wc-follower-oauth-zQrQ_-X-.js → wc-follower-oauth-vp1M17Dr.js} +1 -1
  80. package/dist/ui/assets/wc-live-DceF_UzK.js +8 -0
  81. package/dist/ui/assets/{wc-nav-Tgpbhdpp.js → wc-nav-CDkLZdES.js} +2 -2
  82. package/dist/ui/assets/{wc-onboarding-BBTuggnr.js → wc-onboarding-BWy2dzK7.js} +2 -2
  83. package/dist/ui/assets/{wc-placeholder-CSYC5Z4y.js → wc-placeholder-BxAYxGjQ.js} +2 -2
  84. package/dist/ui/assets/{wc-settings-C3k0x9b8.js → wc-settings-DkB2E9BQ.js} +2 -2
  85. package/dist/ui/assets/{wc-shell-C-z4_w2P.js → wc-shell-DpHDz6l0.js} +93 -93
  86. package/dist/ui/assets/wc-shortcut-config-zaGKgOg0.js +47 -0
  87. package/dist/ui/assets/{wc-sprinkles-D4L0Ayao.js → wc-sprinkles-BwHGBn0Y.js} +2 -2
  88. package/dist/ui/assets/{wc-tray-CongFn06.js → wc-tray-CDug6sCk.js} +4 -4
  89. package/dist/ui/assets/{xai-grok-D1BnWXzi.js → xai-grok-Be30-EeE.js} +1 -1
  90. package/dist/ui/assets/{xai-grok-B2IJR6rm.js → xai-grok-C0MYOtlB.js} +1 -1
  91. package/dist/ui/index.html +6 -6
  92. package/dist/ui/packages/webapp/index.html +6 -6
  93. package/package.json +3 -3
  94. package/dist/ui/assets/__vite-browser-external-CyeY5rFA.js +0 -1
  95. package/dist/ui/assets/keys-0y1eyH9C.js +0 -42
  96. package/dist/ui/assets/main-WUPNMSNQ.js +0 -22
  97. package/dist/ui/assets/provider-store-access-DOWdK8Uc.js +0 -1
  98. package/dist/ui/assets/slicc-version-BJZ6e9Bi.js +0 -1
  99. package/dist/ui/assets/wc-live-Dxh4Vv-h.js +0 -8
  100. package/dist/ui/assets/wc-shortcut-config-Y2GDBV6K.js +0 -42
package/README.md CHANGED
@@ -188,33 +188,48 @@ Why the name? SLICC stands for **Self-Licking Ice Cream Cone**: a recursive syst
188
188
 
189
189
  ## Keyboard mode
190
190
 
191
- SLICC's main control is a text field, so it has no always-on shortcuts to collide with your typing. Instead it has a **mode**, like vim — and, like vim, the mode is where you rest: keyboard mode is on whenever nothing is focused for typing, and every key below is a bare letter. Press <kbd>Esc</kbd> to leave the composer for it, or just click somewhere that is not a text field. To type again, press <kbd>⏎</kbd> or <kbd>c</kbd> (or click into the composer). While the mode is on, a pill above the composer says so.
192
-
193
- | Key | Action |
194
- | ------------------------------------------ | -------------------------------------------------------------- |
195
- | <kbd>Esc</kbd> | Leave the composer for keyboard mode (again: exit full screen) |
196
- | <kbd>1</kbd>…<kbd>9</kbd> | Switch to that agent in the tab strip (<kbd>9</kbd> = last) |
197
- | <kbd>d</kbd> | Next agent, looping |
198
- | <kbd>c</kbd> or <kbd>⏎</kbd> | Back to the composer |
199
- | <kbd>n</kbd> | New conversation |
200
- | <kbd>b</kbd> | Toggle the left rail |
201
- | <kbd>x</kbd> | Toggle the right panel |
202
- | <kbd>f</kbd> | File browser |
203
- | <kbd>t</kbd> | Browser tabs |
204
- | <kbd>e</kbd> | Terminal |
205
- | <kbd>m</kbd> | Memory |
206
- | <kbd>s</kbd> | Sprinkles, looping |
207
- | <kbd>l</kbd> | Model picker |
208
- | <kbd>a</kbd> | Accounts |
209
- | <kbd>h</kbd>, <kbd>?</kbd> or <kbd>/</kbd> | This list, in an overlay |
191
+ SLICC's main control is a text field, so it has no always-on shortcuts to collide with your typing. Instead it has a **mode**, like vim — and, like vim, the mode is where you rest: keyboard mode is on whenever nothing is focused for typing, and every key below is a bare letter. Press <kbd>Esc</kbd> to leave the composer for it, or just click somewhere that is not a text field. To type again, press <kbd>⏎</kbd> or <kbd>i</kbd> (or click into the composer). While the mode is on, a pill above the composer says so.
192
+
193
+ | Key | Action |
194
+ | ---------------------------- | ----------------------------------------------------------------- |
195
+ | <kbd>Esc</kbd> | Leave the composer for keyboard mode (again: exit full screen) |
196
+ | <kbd>i</kbd> or <kbd>⏎</kbd> | Back to the composer |
197
+ | <kbd>?</kbd> | This list, in an overlay |
198
+ | <kbd>1</kbd>…<kbd>9</kbd> | Switch to that agent in the tab strip (<kbd>9</kbd> = last) |
199
+ | <kbd>→</kbd> / <kbd>←</kbd> | Next / previous agent, looping |
200
+ | <kbd>n</kbd> / <kbd>N</kbd> | New conversation / new conversation, erasing this one |
201
+ | <kbd>c</kbd> / <kbd>C</kbd> | New cone / drop this cone |
202
+ | <kbd>r</kbd> | Archived chats (with <kbd>1</kbd>–<kbd>9</kbd>: restore that one) |
203
+ | <kbd>s</kbd> | Stop the running turn |
204
+ | <kbd>a</kbd> | Go to the pending approval |
205
+ | <kbd>u</kbd> | Attach a file or skill |
206
+ | <kbd>v</kbd> | Dictate — press again to send |
207
+ | <kbd>y</kbd> / <kbd>Y</kbd> | Copy the last reply / the whole chat |
208
+ | <kbd>j</kbd> / <kbd>k</kbd> | Next / previous message — or entry, inside an open list |
209
+ | <kbd>f</kbd> | File browser (with <kbd>1</kbd>–<kbd>9</kbd>: open that row) |
210
+ | <kbd>t</kbd> | Terminal |
211
+ | <kbd>b</kbd> | Browser tabs |
212
+ | <kbd>m</kbd> | Memory (with <kbd>1</kbd>–<kbd>9</kbd>: open that entry) |
213
+ | <kbd>g</kbd> | Monitor |
214
+ | <kbd>p</kbd> | Sprinkles (with <kbd>1</kbd>–<kbd>9</kbd>: open that one) |
215
+ | <kbd>[</kbd> / <kbd>]</kbd> | Toggle the left rail / the right panel |
216
+ | <kbd>z</kbd> | Full screen the open panel |
217
+ | <kbd>l</kbd> | Model picker |
218
+ | <kbd>,</kbd> | Accounts |
219
+
220
+ **Chords.** Anything that owns a list takes a digit straight after it, and the digit picks from THAT list instead of the tab strip: <kbd>f</kbd> <kbd>3</kbd> is the third file, <kbd>r</kbd> <kbd>1</kbd> is the chat you archived most recently, <kbd>p</kbd> <kbd>2</kbd> is the second sprinkle. <kbd>9</kbd> is always the last one, exactly as it is for agents. The first key acts immediately, so <kbd>f</kbd> on its own is still just "open the files panel", and a digit pressed on its own is still an agent.
221
+
222
+ <kbd>j</kbd> and <kbd>k</kbd> walk the same lists, looping — <kbd>p</kbd> <kbd>j</kbd> <kbd>j</kbd> steps through your sprinkles, <kbd>f</kbd> <kbd>k</kbd> jumps straight to the last file — and with no list open they walk the conversation a message at a time instead. A list stays addressable for exactly as long as its keys are still showing on the pill, and every digit or step key keeps both alive, so a walk down a long list never expires under you.
210
223
 
211
224
  Every key you press shows up as a cap on the pill — dimmed if it was not bound to anything, so a mistyped key reads as "that did nothing" rather than as a dead keyboard. The strip clears after a moment of quiet.
212
225
 
213
- Keys that navigate, or toggle chrome (digits, <kbd>d</kbd>, <kbd>b</kbd>, <kbd>x</kbd>, <kbd>s</kbd>, help), keep the mode on; anything that hands focus to a text field leaves it, whether that is a shortcut, a click, or a panel that opens with a field ready. Inside a text field nothing is intercepted at all, and a focused button keeps its own <kbd>⏎</kbd> and <kbd>Space</kbd>. The overlay is also in the avatar menu, under **Keyboard mode**.
226
+ Keys that navigate, or toggle chrome (digits, the arrows, <kbd>j</kbd>, <kbd>k</kbd>, <kbd>[</kbd>, <kbd>]</kbd>, <kbd>s</kbd>, <kbd>v</kbd>, <kbd>z</kbd>, help), keep the mode on; anything that hands focus to a surface leaves it, whether that is a shortcut, a click, or a panel that opens with a field ready. Inside a text field nothing is intercepted at all, and a focused button keeps its own <kbd>⏎</kbd> and <kbd>Space</kbd>. The overlay is also in the avatar menu, under **Keyboard mode**.
214
227
 
215
228
  **Switching agents keeps your place.** The mode you were in when you left a cone is the mode you land back in: leave it typing and the caret is waiting in the new cone's composer, leave it in keyboard mode and the pill is still up. A scoop's transcript is read-only and has no composer at all, so it always puts you in keyboard mode — but it does not overwrite what you left behind, so cone → scoop → cone gives your caret back.
216
229
 
217
- **Rebinding.** The keys live in `/etc/slicc/keys.json` in the VFS, written the first time SLICC starts and never touched again edit it and reload the tab. Each entry maps a key to a command (`"q": "terminal"`) and several keys can share one command. The file is applied _over_ the built-in keymap, so `null` removes a binding while deleting the line just restores its default which is also how you inherit any keys a later version adds. The file lists every command it accepts. <kbd>Esc</kbd> and the digits are reserved. A bad line is skipped with a warning rather than costing you the rest of the file, and the help overlay always shows what is actually bound.
230
+ **Rebinding.** The keys live in `/etc/slicc/keys.json` in the VFS edit it and reload the tab. It ships EMPTY: the keymap above lives in SLICC itself and the file holds only your overrides, so anything you do not mention follows the shipped map, including keys a later version adds. Each entry maps a key to a command (`"q": "terminal"`) and several keys can share one; `null` removes a binding. The file lists every command it accepts, and a chord follows its command rebind `files` to <kbd>q</kbd> and <kbd>q</kbd> <kbd>3</kbd> is the third file. <kbd>Esc</kbd> and the digits are reserved. A bad line is skipped with a warning rather than costing you the rest of the file, and the help overlay always shows what is actually bound.
231
+
232
+ > **Upgrading from 6.110 or earlier?** That version wrote its whole keymap into `/etc/slicc/keys.json`, which would have pinned you to it forever. If you never edited the file, SLICC replaces it once with the empty one so the map above reaches you; if you did edit it, your file is left exactly as it is. To keep the old keys, the file's comment carries them as a block you can paste back into `"bindings"`.
218
233
 
219
234
  ## API Keys and Providers
220
235