sliccy 3.44.0 → 3.46.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.
- package/README.md +1 -1
- package/dist/node-server/electron-controller.d.ts +66 -0
- package/dist/node-server/electron-controller.js +351 -227
- package/dist/ui/assets/{adobe-DfX5Y34s.js → adobe-CSxcey5r.js} +2 -2
- package/dist/ui/assets/{adobe-ChVGhtP9.js → adobe-Da115bHB.js} +1 -1
- package/dist/ui/assets/{agent-bridge-C5enj1WV.js → agent-bridge-ZRdlTYxI.js} +1 -1
- package/dist/ui/assets/agent-message-to-chat-B5VQCgc6.js +7 -0
- package/dist/ui/assets/{apps-Crb9N_ly.js → apps-LCRJf-Bj.js} +1 -1
- package/dist/ui/assets/{azure-openai-C4klGbBq.js → azure-openai-DrpoflZr.js} +1 -1
- package/dist/ui/assets/{azure-openai-z_V4V786.js → azure-openai-e68lAEyj.js} +1 -1
- package/dist/ui/assets/{bsh-watchdog-X8O_f3CL.js → bsh-watchdog-B1zIY2sM.js} +1 -1
- package/dist/ui/assets/{cdp-rsA_ALer.js → cdp-Cy4upOhT.js} +3 -3
- package/dist/ui/assets/{connect-surface-KLfqgi-g.js → connect-surface-BahfcMFA.js} +1 -1
- package/dist/ui/assets/cost-command-B1SUEdVQ.js +1 -0
- package/dist/ui/assets/{dist-LiJ_YnhF.js → dist-DLO6_i_i.js} +1 -1
- package/dist/ui/assets/{dist-Bm5Z71wh.js → dist-DUVVOtT3.js} +1 -1
- package/dist/ui/assets/{es-BJGCk_7v.js → es-CBKhaKNo.js} +1 -1
- package/dist/ui/assets/{follower-sprinkle-bridge-Q2unDn_f.js → follower-sprinkle-bridge-CknbkmDw.js} +1 -1
- package/dist/ui/assets/{fs-OBeSd3iT.js → fs-jtOU7if2.js} +1 -1
- package/dist/ui/assets/{github-kiWl2pok.js → github-B4cLbBmQ.js} +1 -1
- package/dist/ui/assets/{github-Ca90QHu7.js → github-BSaD-jMI.js} +2 -2
- package/dist/ui/assets/{github-copilot-CwAq3lpN.js → github-copilot-BsW7hhJu.js} +1 -1
- package/dist/ui/assets/{github-copilot-BrwsrJ0a.js → github-copilot-DodI4DS1.js} +1 -1
- package/dist/ui/assets/{kernel-worker-D7kDM6z5.js → kernel-worker-BTrLFznM.js} +919 -891
- package/dist/ui/assets/lick-ws-bridge-E1g3lRps.js +1 -0
- package/dist/ui/assets/{local-llm-BlEhi-EE.js → local-llm-CwKk0-sh.js} +1 -1
- package/dist/ui/assets/{magick-wasm-1dtYEyLr.js → magick-wasm-Muqi5nQe.js} +1 -1
- package/dist/ui/assets/{main-DQNfRwQ_.js → main-BAt3GJms.js} +169 -169
- package/dist/ui/assets/{main-cherry-zUoPE3cg.js → main-cherry-TgxLxBGI.js} +1 -1
- package/dist/ui/assets/{migration-run--a8o7LGm.js → migration-run-BDogYJcC.js} +1 -1
- package/dist/ui/assets/{mount-B7zmIwVP.js → mount-CSayJ5xj.js} +1 -1
- package/dist/ui/assets/{nuke-command-DlkLMgeD.js → nuke-command-B1G-iwiX.js} +1 -1
- package/dist/ui/assets/{oauth-bootstrap--CDdXr74.js → oauth-bootstrap-CJO5Uc9n.js} +2 -2
- package/dist/ui/assets/{oauth-service-BcS-bhoB.js → oauth-service-DB4fWEIw.js} +1 -1
- package/dist/ui/assets/{onboarding-orchestrator-Dpk9ts40.js → onboarding-orchestrator-xRYzOs-B.js} +1 -1
- package/dist/ui/assets/{openai-codex-DzqY9hsC.js → openai-codex-B5qZu8bN.js} +1 -1
- package/dist/ui/assets/{openai-codex-D1-QVrzy.js → openai-codex-CgxGUy87.js} +1 -1
- package/dist/ui/assets/{panel-rpc-handlers-CnJYQP27.js → panel-rpc-handlers-DbDQuWjm.js} +1 -1
- package/dist/ui/assets/{provider-BiMU6jfy.js → provider-BbqMcfYp.js} +2 -2
- package/dist/ui/assets/{provider-BBaMH9k3.js → provider-j_DAU9YR.js} +1 -1
- package/dist/ui/assets/{provider-settings-Cg_hqZuj.js → provider-settings-BfWBLG45.js} +2 -2
- package/dist/ui/assets/provider-store-access-DREH5Rn0.js +1 -0
- package/dist/ui/assets/provider-store-access-Dvt6Obmo.js +1 -0
- package/dist/ui/assets/{providers-BHEqlrX_.js → providers-B-eUneAQ.js} +1 -1
- package/dist/ui/assets/{proxied-fetch-Czuq7h2B.js → proxied-fetch-DLNoZln5.js} +1 -1
- package/dist/ui/assets/{remote-terminal-view-DkDiLkBM.js → remote-terminal-view-8J05xBYs.js} +1 -1
- package/dist/ui/assets/{store-DFdPyEaa.js → store-s3uG1ved.js} +1 -1
- package/dist/ui/assets/{sudo-CDWHE-XG.js → sudo-6xMv5Je5.js} +1 -1
- package/dist/ui/assets/{tray-leave-runtime-CedcHQX5.js → tray-leave-runtime-DnWFIWXy.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-Bxb3OurB.js → upgrade-detection-366FmFL3.js} +1 -1
- package/dist/ui/assets/{xai-grok-CaWgmHbx.js → xai-grok-BG6yWHMj.js} +1 -1
- package/dist/ui/assets/{xai-grok-BrDEN2gc.js → xai-grok-hGf99Tc7.js} +1 -1
- package/dist/ui/electron-overlay-entry.js +127 -10
- package/dist/ui/index.html +1 -1
- package/dist/ui/packages/webapp/index.html +1 -1
- package/package.json +1 -1
- package/dist/ui/assets/agent-message-to-chat-FbjZc5O-.js +0 -7
- package/dist/ui/assets/cost-command-JwQpMwfk.js +0 -1
- package/dist/ui/assets/lick-ws-bridge-X9yJaxZX.js +0 -1
- package/dist/ui/assets/provider-store-access-DumMYBkr.js +0 -1
- package/dist/ui/assets/provider-store-access-k0kSINjn.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
|
-
[](https://github.com/ai-ecoverse/vibe-coded-badge-action)
|
|
15
15
|
|
|
16
16
|
[](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 {};
|