sliccy 3.43.0 → 3.45.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 (61) hide show
  1. package/README.md +1 -1
  2. package/dist/node-server/electron-controller.d.ts +66 -0
  3. package/dist/node-server/electron-controller.js +351 -227
  4. package/dist/ui/assets/{adobe-BI2uhnZD.js → adobe-Ds812-ra.js} +1 -1
  5. package/dist/ui/assets/{adobe-D4iM7Aw8.js → adobe-ivtPYmqg.js} +2 -2
  6. package/dist/ui/assets/{agent-bridge-Dd35hIPg.js → agent-bridge-DmfLQBK6.js} +1 -1
  7. package/dist/ui/assets/{agent-message-to-chat-CGvMvbsx.js → agent-message-to-chat-D16PaAN7.js} +1 -1
  8. package/dist/ui/assets/{apps-CoufI6eq.js → apps-CwAAMuoH.js} +1 -1
  9. package/dist/ui/assets/{azure-openai-BRqLYWJW.js → azure-openai-5r7wuCMI.js} +1 -1
  10. package/dist/ui/assets/{azure-openai-Bm7ozlSw.js → azure-openai-BA361JV-.js} +1 -1
  11. package/dist/ui/assets/{bsh-watchdog-CpraCmMu.js → bsh-watchdog-CxNaT8-y.js} +1 -1
  12. package/dist/ui/assets/{cdp-C3KWUTPR.js → cdp-CKoozPln.js} +3 -3
  13. package/dist/ui/assets/{connect-surface-J-fSGdR1.js → connect-surface-DzyDnkx5.js} +1 -1
  14. package/dist/ui/assets/cost-command-ZUZVbObe.js +1 -0
  15. package/dist/ui/assets/{dist-B9EVsbsZ.js → dist-DofwLk0q.js} +1 -1
  16. package/dist/ui/assets/{dist-_zbq8hcL.js → dist-rRyNM8rd.js} +1 -1
  17. package/dist/ui/assets/{es-T65byM7G.js → es-5UWQdOB0.js} +1 -1
  18. package/dist/ui/assets/{follower-sprinkle-bridge-fXFMQvbu.js → follower-sprinkle-bridge-viWRCD5z.js} +1 -1
  19. package/dist/ui/assets/{fs-CVaO9nmT.js → fs-C9UBBI7S.js} +1 -1
  20. package/dist/ui/assets/{github-aQjNbW79.js → github-CkIRWF-f.js} +2 -2
  21. package/dist/ui/assets/{github-5Avk8m6S.js → github-DBXkIqTY.js} +1 -1
  22. package/dist/ui/assets/{github-copilot-DQmwWqa0.js → github-copilot-DiVnQ5Uo.js} +1 -1
  23. package/dist/ui/assets/{github-copilot-DaqobM8h.js → github-copilot-IziFP5rO.js} +1 -1
  24. package/dist/ui/assets/{kernel-worker-Db4cVMp1.js → kernel-worker-FZOMNCj9.js} +1078 -980
  25. package/dist/ui/assets/lick-ws-bridge-CyGSwbAX.js +1 -0
  26. package/dist/ui/assets/{local-llm-DwN2IGO6.js → local-llm-C7XwzBbN.js} +1 -1
  27. package/dist/ui/assets/{magick-wasm-BvCVfok4.js → magick-wasm-Bmrjpi0U.js} +1 -1
  28. package/dist/ui/assets/{main-NTOoEKjL.js → main-P7Vi7TpQ.js} +169 -169
  29. package/dist/ui/assets/{main-cherry-B6JzfsA7.js → main-cherry-D-OWd1Kw.js} +1 -1
  30. package/dist/ui/assets/{migration-run-BgWD9oib.js → migration-run-cqQXJZcY.js} +1 -1
  31. package/dist/ui/assets/{mount-yzoftHrR.js → mount-CvghmQkc.js} +1 -1
  32. package/dist/ui/assets/{nuke-command-D9-dbCYJ.js → nuke-command-CSv_S5nD.js} +1 -1
  33. package/dist/ui/assets/{oauth-bootstrap-CNdKZr46.js → oauth-bootstrap-B8y2pYWG.js} +2 -2
  34. package/dist/ui/assets/{oauth-service-CziAqQV_.js → oauth-service-Bv6jDVRT.js} +1 -1
  35. package/dist/ui/assets/{onboarding-orchestrator-B-FnIFwe.js → onboarding-orchestrator-c5JgScm0.js} +1 -1
  36. package/dist/ui/assets/{openai-codex-ARoxTqWI.js → openai-codex-BGqtCHJ8.js} +1 -1
  37. package/dist/ui/assets/{openai-codex-B2PPPq0K.js → openai-codex-Bz9CHxK-.js} +1 -1
  38. package/dist/ui/assets/{panel-rpc-handlers-LgGlb81w.js → panel-rpc-handlers-pimI-6NM.js} +1 -1
  39. package/dist/ui/assets/{provider-BZaypnYm.js → provider-B5YQBKBu.js} +2 -2
  40. package/dist/ui/assets/{provider-DqeIN53r.js → provider-CI9uKbU6.js} +1 -1
  41. package/dist/ui/assets/{provider-settings-CSKMTOfj.js → provider-settings-C6iSqI1N.js} +2 -2
  42. package/dist/ui/assets/provider-store-access-BpS14jY1.js +1 -0
  43. package/dist/ui/assets/provider-store-access-ChDYzXK5.js +1 -0
  44. package/dist/ui/assets/{providers-DJ6UMUQK.js → providers-CItOfmVP.js} +1 -1
  45. package/dist/ui/assets/{proxied-fetch-D0DbPyX7.js → proxied-fetch-CikvmA0_.js} +1 -1
  46. package/dist/ui/assets/{remote-terminal-view-BD8JYN10.js → remote-terminal-view-Bmb-n3nX.js} +1 -1
  47. package/dist/ui/assets/{store-BG1A0wUL.js → store-C5Q-ke5c.js} +1 -1
  48. package/dist/ui/assets/structured-output-tool-BDaIhclx.js +1 -0
  49. package/dist/ui/assets/{sudo-DoBsq3Yd.js → sudo-DTDuysV-.js} +1 -1
  50. package/dist/ui/assets/{tray-leave-runtime-DgIZ0HrD.js → tray-leave-runtime-B0jyMysL.js} +1 -1
  51. package/dist/ui/assets/{upgrade-detection-BCqBtcxT.js → upgrade-detection-B6CdWVNb.js} +1 -1
  52. package/dist/ui/assets/{xai-grok-C1pU_6Zh.js → xai-grok-BDmmLGwh.js} +1 -1
  53. package/dist/ui/assets/{xai-grok-CHCF8XFi.js → xai-grok-BHy3Nqkh.js} +1 -1
  54. package/dist/ui/electron-overlay-entry.js +127 -10
  55. package/dist/ui/index.html +1 -1
  56. package/dist/ui/packages/webapp/index.html +1 -1
  57. package/package.json +1 -1
  58. package/dist/ui/assets/cost-command-BgI4Vpod.js +0 -1
  59. package/dist/ui/assets/lick-ws-bridge-ulNyrPpu.js +0 -1
  60. package/dist/ui/assets/provider-store-access-BdiDIUwb.js +0 -1
  61. package/dist/ui/assets/provider-store-access-CFbgFYCq.js +0 -1
package/README.md CHANGED
@@ -11,7 +11,7 @@ If this scares, confuses, or excites you, keep reading.
11
11
 
12
12
  # slicc — Self-Licking Ice Cream Cone
13
13
 
14
- [![63% Vibe_Coded](https://img.shields.io/badge/63%25-Vibe_Coded-ff69b4?style=for-the-badge&logo=claude&logoColor=white)](https://github.com/ai-ecoverse/vibe-coded-badge-action)
14
+ [![60% Vibe_Coded](https://img.shields.io/badge/60%25-Vibe_Coded-ff69b4?style=for-the-badge&logo=claude&logoColor=white)](https://github.com/ai-ecoverse/vibe-coded-badge-action)
15
15
 
16
16
  [![npm](https://img.shields.io/npm/v/sliccy)](https://www.npmjs.com/package/sliccy)
17
17
 
@@ -1,4 +1,5 @@
1
1
  import { type ChildProcess } from 'child_process';
2
+ import { type ElectronInspectableTarget } from './electron-runtime.js';
2
3
  interface RunningProcessInfo {
3
4
  pid: number;
4
5
  commandLine: string;
@@ -31,9 +32,20 @@ export declare function decodePngPixels(base64Data: string): {
31
32
  * sampling a grid of pixels for performance.
32
33
  */
33
34
  export declare function computeAverageLuminance(pixels: Buffer, width: number, height: number, sampleStep?: number): number;
35
+ /**
36
+ * Resolve the `Fetch.enable` origin pattern for CSP-bypass escalation. Mirrors
37
+ * swift-server's `OverlayTargetSession.fetchProxyOrigin` (Wave 5): prefer the
38
+ * parent page's http(s) origin so interception is byte-for-byte the same as
39
+ * before, but for `file://` (or other no-http-origin) targets fall back to the
40
+ * overlay iframe's own `http://localhost:<servePort>` origin — that is what
41
+ * actually needs unblocking when the parent is a local file.
42
+ */
43
+ export declare function resolveFetchProxyOrigin(targetUrl: string, servePort: number): string;
34
44
  export declare class ElectronOverlayInjector {
35
45
  private readonly cdpPort;
46
+ private readonly servePort;
36
47
  private readonly bootstrapScript;
48
+ private readonly probeDelayMs;
37
49
  private readonly connections;
38
50
  private readonly cspBypassedTargets;
39
51
  private syncTimer;
@@ -45,6 +57,25 @@ export declare class ElectronOverlayInjector {
45
57
  dev: boolean;
46
58
  projectRoot: string;
47
59
  }): Promise<ElectronOverlayInjector>;
60
+ /**
61
+ * Test-only factory: skips bundle loading and lets tests drive the per-target
62
+ * connect flow directly with a controllable probe delay. Mirrors swift-server's
63
+ * `_testing_*` hooks on `ElectronOverlayInjector`.
64
+ */
65
+ static _createForTesting(options: {
66
+ cdpPort?: number;
67
+ servePort: number;
68
+ bootstrapScript?: string;
69
+ probeDelayMs?: number;
70
+ }): ElectronOverlayInjector;
71
+ /** Test-only: drive the per-target connect flow without going through `start`. */
72
+ _testingConnectToTarget(target: ElectronInspectableTarget): void;
73
+ /** Test-only: seed the per-target "already bypassed" guard. */
74
+ _testingSeedBypassedTarget(url: string): void;
75
+ /** Test-only: snapshot the per-target "already bypassed" guard set. */
76
+ _testingBypassedTargets(): ReadonlySet<string>;
77
+ /** Test-only: close any sockets opened by `_testingConnectToTarget`. */
78
+ _testingCloseConnections(): void;
48
79
  start(): Promise<void>;
49
80
  stop(): void;
50
81
  private syncTargets;
@@ -53,6 +84,41 @@ export declare class ElectronOverlayInjector {
53
84
  * Returns true if the iframe element exists and has started loading content.
54
85
  */
55
86
  private probeOverlayIframeLoaded;
87
+ /**
88
+ * Build a script that sets the SLICC theme preference in localStorage to
89
+ * match the target app's detected theme, then runs the bootstrap.
90
+ */
91
+ private buildThemedBootstrap;
92
+ /**
93
+ * Handle the initial CDP `ws.on('open', ...)` event for a target: enable
94
+ * Runtime/Page, set CSP bypass, detect theme, inject the overlay, and (on a
95
+ * first connect) probe whether the overlay iframe actually loaded — falling
96
+ * back to a CSP-bypass reload by setting `state.pendingReload` and
97
+ * `state.pendingCspEscalation` for the message handler to continue from.
98
+ *
99
+ * Mutating flow flags (`pendingReload`, `pendingCspEscalation`,
100
+ * `fetchProxyActive`) live on the shared `state` object so this helper
101
+ * preserves the original closure-driven control flow exactly.
102
+ */
103
+ private handleSocketOpen;
104
+ /**
105
+ * Handle `Page.loadEventFired` after a CSP-bypass reload: re-inject the
106
+ * themed overlay, then (if this load came from the simple-reload path) probe
107
+ * the iframe again and, if still blocked, escalate to the Fetch HTTP proxy
108
+ * which strips CSP from the document response. The proxy reload also sets
109
+ * `pendingReload` again so the next `loadEventFired` re-injects on top of
110
+ * the stripped response.
111
+ */
112
+ private handlePageLoadAfterReload;
113
+ /**
114
+ * Handle a single `Fetch.requestPaused` event under the active Fetch proxy:
115
+ * pass non-HTML requests straight through with `Fetch.continueRequest`, and
116
+ * proxy HTML document requests through Node http/https so the response can
117
+ * be returned via `Fetch.fulfillRequest` with CSP and hop-by-hop headers
118
+ * stripped. `Fetch.fulfillRequest` is intentionally fire-and-forget — there
119
+ * is no CDP reply for fulfill, and the response body is the document body.
120
+ */
121
+ private handleFetchRequestPaused;
56
122
  private connectToTarget;
57
123
  }
58
124
  export {};