sliccy 6.247.11 → 6.247.12

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 (144) hide show
  1. package/dist/node-server/_shared/backoff.d.ts +48 -0
  2. package/dist/node-server/_shared/backoff.d.ts.map +1 -0
  3. package/dist/node-server/_shared/backoff.js +31 -0
  4. package/dist/node-server/_shared/backoff.js.map +1 -0
  5. package/dist/node-server/_shared/index.d.ts +1 -0
  6. package/dist/node-server/_shared/index.d.ts.map +1 -1
  7. package/dist/node-server/_shared/index.js +1 -0
  8. package/dist/node-server/_shared/index.js.map +1 -1
  9. package/dist/node-server/electron-tray-follower.js +6 -2
  10. package/dist/ui/.vite/manifest.json +199 -199
  11. package/dist/ui/assets/{account-store-CP0qPuIH.js → account-store-7ZG4EU26.js} +1 -1
  12. package/dist/ui/assets/{account-store-kIEuaABj.js → account-store-CzDXCAWi.js} +1 -1
  13. package/dist/ui/assets/{adobe-CA_6uggn.js → adobe-DsQ9gRFM.js} +1 -1
  14. package/dist/ui/assets/{adobe-tw6zdn4b.js → adobe-hVgoiq8N.js} +1 -1
  15. package/dist/ui/assets/{agent-panels-PJg7-RsM.js → agent-panels-B_28Aryb.js} +1 -1
  16. package/dist/ui/assets/{almost-bash-shell-headless-oZdnEqsZ.js → almost-bash-shell-headless-0j03CWOa.js} +12 -12
  17. package/dist/ui/assets/{apply-layout-iJMfd1yW.js → apply-layout-DYraC5nk.js} +1 -1
  18. package/dist/ui/assets/{azure-openai-126Etpdv.js → azure-openai-8hmOfzl8.js} +1 -1
  19. package/dist/ui/assets/{azure-openai-4NK_0U63.js → azure-openai-BIuZ9Dbs.js} +1 -1
  20. package/dist/ui/assets/{cdp-BSWDrf41.js → cdp-BH8hPeOO.js} +1 -1
  21. package/dist/ui/assets/{cerebras-Bp2sLgc6.js → cerebras-OUM7DXH4.js} +1 -1
  22. package/dist/ui/assets/{cerebras-nCejzX0o.js → cerebras-Z366Q196.js} +1 -1
  23. package/dist/ui/assets/{composer-speech-BpNVJo8o.js → composer-speech-BNtdyv77.js} +1 -1
  24. package/dist/ui/assets/{connect-surface-CfriVoMp.js → connect-surface-VZSYADRY.js} +1 -1
  25. package/dist/ui/assets/{directed-approval-BQeZa_Sq.js → directed-approval-SLrxQCDN.js} +1 -1
  26. package/dist/ui/assets/{emscripten-vfs-hook-CCHaUXO8.js → emscripten-vfs-hook-Db-Rqt0E.js} +1 -1
  27. package/dist/ui/assets/{frozen-archive-writer-BFdbXinN.js → frozen-archive-writer-CMjc8Tsp.js} +1 -1
  28. package/dist/ui/assets/{frozen-archive-writer-RWkTphjY.js → frozen-archive-writer-CbeTYRhx.js} +1 -1
  29. package/dist/ui/assets/{frozen-session-delete-BYMq0RbZ.js → frozen-session-delete-C-IbEW92.js} +1 -1
  30. package/dist/ui/assets/{frozen-session-identity-CVjx4tk5.js → frozen-session-identity-DUzrvQbu.js} +1 -1
  31. package/dist/ui/assets/{frozen-session-identity-gSlITu2z.js → frozen-session-identity-DXXmhcS7.js} +1 -1
  32. package/dist/ui/assets/{gelatiere-unit-BiXkUTed.js → gelatiere-unit-BS90VAdY.js} +1 -1
  33. package/dist/ui/assets/{github-CSapEJ_d.js → github-C7OX0s-9.js} +1 -1
  34. package/dist/ui/assets/{github-copilot--Cop9RpT.js → github-copilot-CbdUOu0Y.js} +1 -1
  35. package/dist/ui/assets/{github-copilot-DSOW-n6G.js → github-copilot-LbjONsEo.js} +1 -1
  36. package/dist/ui/assets/{github-Jg6qfAl1.js → github-xbhhs4iu.js} +1 -1
  37. package/dist/ui/assets/{hear-BTlFIIDy.js → hear-Dg1iP-FA.js} +1 -1
  38. package/dist/ui/assets/{js-realm-worker-sytLaNb6.js → js-realm-worker-BFGKYAH4.js} +8 -8
  39. package/dist/ui/assets/{jsh-executor-AvvmsqvA.js → jsh-executor-uNP4kljs.js} +2 -2
  40. package/dist/ui/assets/{kernel-worker-IWklUOGf.js → kernel-worker-CmNyMuRt.js} +10 -10
  41. package/dist/ui/assets/lick-ws-bridge-B3Trt9za.js +1 -0
  42. package/dist/ui/assets/{lick-ws-bridge-BsH2bfo7.js → lick-ws-bridge-C2mZqvgi.js} +1 -1
  43. package/dist/ui/assets/{live-session-curation-nvcZhhoi.js → live-session-curation-C9I5kztQ.js} +1 -1
  44. package/dist/ui/assets/{live-session-curation-CZQfEn5b.js → live-session-curation-Rt3e2Qf4.js} +1 -1
  45. package/dist/ui/assets/{live-session-snapshot-D5PlWqPE.js → live-session-snapshot-BqXtcJPb.js} +1 -1
  46. package/dist/ui/assets/{local-llm-BmiBe42z.js → local-llm-B-9CNG69.js} +1 -1
  47. package/dist/ui/assets/{local-llm-Ci5k4rOm.js → local-llm-Wizp_nXj.js} +1 -1
  48. package/dist/ui/assets/{main-cherry-CR31d6qm.js → main-cherry-kw8r8fQd.js} +1 -1
  49. package/dist/ui/assets/main-iHTjyEtp.js +22 -0
  50. package/dist/ui/assets/{mcp-command-DJAqU5qV.js → mcp-command-D1egApSY.js} +10 -10
  51. package/dist/ui/assets/{memory-curation-seam-CX0zvC3d.js → memory-curation-seam-prKJjL1y.js} +1 -1
  52. package/dist/ui/assets/{memory-health-BPUpG_BZ.js → memory-health-CTEPuVb7.js} +1 -1
  53. package/dist/ui/assets/{memory-write-execute-DIx_GYtP.js → memory-write-execute-GBtGIgK_.js} +1 -1
  54. package/dist/ui/assets/{merge-folded-cost-into-frozen-I77y1mb4.js → merge-folded-cost-into-frozen-De0gKwEn.js} +1 -1
  55. package/dist/ui/assets/{new-session-ByHPtWA9.js → new-session-BVIbZTQt.js} +2 -2
  56. package/dist/ui/assets/{oauth-bootstrap-BxWgdw98.js → oauth-bootstrap-BlT9LBPc.js} +2 -2
  57. package/dist/ui/assets/{onboarding-orchestrator-CKhuBZtR.js → onboarding-orchestrator-CfcCOkfA.js} +1 -1
  58. package/dist/ui/assets/{openai-codex-DkG97SSf.js → openai-codex-8JCLB7Jr.js} +1 -1
  59. package/dist/ui/assets/{openai-codex-BviW1bOO.js → openai-codex-DbQdFpll.js} +1 -1
  60. package/dist/ui/assets/{openrouter-pbjQIn6d.js → openrouter-CCdK252P.js} +1 -1
  61. package/dist/ui/assets/{openrouter-BDD6Wz0H.js → openrouter-Cjsa-hVP.js} +1 -1
  62. package/dist/ui/assets/{openrouter-free-D2v907EM.js → openrouter-free-CaBYlORJ.js} +1 -1
  63. package/dist/ui/assets/{openrouter-free-vaz6XGOF.js → openrouter-free-DCyK5zM5.js} +1 -1
  64. package/dist/ui/assets/{openrouter-oauth-x5ZNAcSW.js → openrouter-oauth-B5_NQJoF.js} +1 -1
  65. package/dist/ui/assets/{openrouter-oauth-D7Tpuvo9.js → openrouter-oauth-CSxJ2E1U.js} +1 -1
  66. package/dist/ui/assets/{panel-rpc-handlers-CYSt8g1G.js → panel-rpc-handlers-BdXEn8sp.js} +2 -2
  67. package/dist/ui/assets/{panelize-shell-BPcirhvW.js → panelize-shell-ChQ1izMQ.js} +1 -1
  68. package/dist/ui/assets/{pi-edit-execution-C7N_x2tR.js → pi-edit-execution-CgHD1hRs.js} +1 -1
  69. package/dist/ui/assets/{provider-CHYHD-A8.js → provider-DzvSK1Q1.js} +1 -1
  70. package/dist/ui/assets/{provider-DP7veavw.js → provider-XTedeQEY.js} +1 -1
  71. package/dist/ui/assets/{provider-settings-DMJ__U9b.js → provider-settings-Dkpkpa0B.js} +1 -1
  72. package/dist/ui/assets/provider-store-access-49Y2HY38.js +1 -0
  73. package/dist/ui/assets/provider-store-access-gLxy0oUi.js +1 -0
  74. package/dist/ui/assets/{providers-BFmDv9cO.js → providers-BfkjYhgb.js} +1 -1
  75. package/dist/ui/assets/{providers-DWC-nn4U.js → providers-DjMMXkF2.js} +2 -2
  76. package/dist/ui/assets/{quick-llm-BjhQX38J.js → quick-llm-eu4YwXnr.js} +1 -1
  77. package/dist/ui/assets/realm-inprocess-DNCLnMzh.js +35 -0
  78. package/dist/ui/assets/{realm-unhandled-rejections-D2-e69aJ.js → realm-unhandled-rejections-CSR3Gnjj.js} +1 -1
  79. package/dist/ui/assets/{realm-unhandled-rejections-qIzNalI5.js → realm-unhandled-rejections-_j2B3cm-.js} +1 -1
  80. package/dist/ui/assets/{recovery-screen-CK2ry3Yt.js → recovery-screen-CmYkSqKI.js} +1 -1
  81. package/dist/ui/assets/{remote-terminal-view-7K-hxzpt.js → remote-terminal-view-C9ZRxwSX.js} +2 -2
  82. package/dist/ui/assets/{restore-BsQGIoWA.js → restore-Ev15D8oX.js} +1 -1
  83. package/dist/ui/assets/{run-DIYehB9j.js → run-B89OrzHo.js} +2 -2
  84. package/dist/ui/assets/{run-Bjg38k77.js → run-BWKtXP0i.js} +1 -1
  85. package/dist/ui/assets/{run-l7VGnRG6.js → run-m02fbUcd.js} +1 -1
  86. package/dist/ui/assets/{run-BaEvWUXZ.js → run-oOZtnIXy.js} +2 -2
  87. package/dist/ui/assets/{serve-command-Ct1BX0I5.js → serve-command-Ddbtn6C5.js} +2 -2
  88. package/dist/ui/assets/{serve-runtime-DKX5DjFS.js → serve-runtime-CVK2fGti.js} +1 -1
  89. package/dist/ui/assets/{session-command-memory-CO06gGu8.js → session-command-memory-DRjcYtWP.js} +2 -2
  90. package/dist/ui/assets/{session-jsonl-CoG_RvhI.js → session-jsonl-Bgz1PmAC.js} +1 -1
  91. package/dist/ui/assets/{session-jsonl-CpJlIf3B.js → session-jsonl-_7wr4Ig9.js} +1 -1
  92. package/dist/ui/assets/{session-search-index-D0ayIkgz.js → session-search-index-CycxcaGM.js} +1 -1
  93. package/dist/ui/assets/{setup-feature-flags-remote-rgMTNB86.js → setup-feature-flags-remote-CQJM2N0Q.js} +1 -1
  94. package/dist/ui/assets/{setup-model-catalog-D_x5LqYu.js → setup-model-catalog-Du0xEak0.js} +1 -1
  95. package/dist/ui/assets/{silent-renew-backoff-BwA7PwcS.js → silent-renew-backoff-j3yb_z-h.js} +1 -1
  96. package/dist/ui/assets/slicc-version-2RsIrmAu.js +1 -0
  97. package/dist/ui/assets/{soundscape-BSoNoUs-.js → soundscape-ORfrgIFk.js} +1 -1
  98. package/dist/ui/assets/{speak-C-KDeo-H.js → speak-DWW1YDnf.js} +1 -1
  99. package/dist/ui/assets/{sprinkle-manager-0gWRoo8Z.js → sprinkle-manager-DfH_NnGN.js} +1 -1
  100. package/dist/ui/assets/{sprinkle-renderer-BOgz-FIB.js → sprinkle-renderer-D8S0GKv-.js} +1 -1
  101. package/dist/ui/assets/{sudo-Cl3r83td.js → sudo-DJB5Rnul.js} +1 -1
  102. package/dist/ui/assets/supervisor-Epz7cCBe.js +1 -0
  103. package/dist/ui/assets/{sync-dialog-B-Hc7z-1.js → sync-dialog--aVRuOGs.js} +1 -1
  104. package/dist/ui/assets/{transformers-env-DJ3emdjJ.js → transformers-env-y26qlvLo.js} +1 -1
  105. package/dist/ui/assets/{tray-leader-LLkxWDOC.js → tray-leader-C4m21sZ3.js} +1 -1
  106. package/dist/ui/assets/{tray-leave-runtime-DMV3oW54.js → tray-leave-runtime-DMbWZ9Mm.js} +1 -1
  107. package/dist/ui/assets/{tray-sidecar-DSI57bHu.js → tray-sidecar-ChGSScW0.js} +1 -1
  108. package/dist/ui/assets/{upgrade-detection-DO9iMxRe.js → upgrade-detection-UrNqnP1N.js} +1 -1
  109. package/dist/ui/assets/{voice-reply-DkWSdiqs.js → voice-reply-Dn3iCbEc.js} +1 -1
  110. package/dist/ui/assets/{wc-attach-DeJrEEN1.js → wc-attach-DWDNlEyK.js} +2 -2
  111. package/dist/ui/assets/{wc-browser-C_HNOCNV.js → wc-browser-DLAia241.js} +1 -1
  112. package/dist/ui/assets/{wc-computers-DBlsrzlO.js → wc-computers-DiAc9QOb.js} +1 -1
  113. package/dist/ui/assets/{wc-detached-CK0TXF8M.js → wc-detached-BEd5cet9.js} +1 -1
  114. package/dist/ui/assets/{wc-extension-YAfIwW5V.js → wc-extension-BcMaElho.js} +2 -2
  115. package/dist/ui/assets/{wc-follower-CgPI_XCr.js → wc-follower-C5476f5N.js} +3 -3
  116. package/dist/ui/assets/{wc-follower-oauth-DCCdFd7H.js → wc-follower-oauth-BOms5Bvj.js} +1 -1
  117. package/dist/ui/assets/{wc-gelatiere-CHw8MR4C.js → wc-gelatiere-uzRox_Qg.js} +1 -1
  118. package/dist/ui/assets/{wc-live-g97HxHJm.js → wc-live-BzGp9D_r.js} +16 -16
  119. package/dist/ui/assets/{wc-nav-DGAtaxnX.js → wc-nav-Ct-WSOlP.js} +2 -2
  120. package/dist/ui/assets/{wc-onboarding-C7EURBUz.js → wc-onboarding-CvA5rgCf.js} +2 -2
  121. package/dist/ui/assets/{wc-permissions-DPCFrJmV.js → wc-permissions-C_V32Sop.js} +2 -2
  122. package/dist/ui/assets/{wc-placeholder-Ck1pkZnX.js → wc-placeholder-o02ufACI.js} +3 -3
  123. package/dist/ui/assets/{wc-secret-request-_4Y4CXwH.js → wc-secret-request-rv2LeR0-.js} +1 -1
  124. package/dist/ui/assets/{wc-settings-BiZgs8TD.js → wc-settings-BaC_8qMG.js} +3 -3
  125. package/dist/ui/assets/{wc-shell-Dj0q9UL0.js → wc-shell-O1UMCNi9.js} +3 -3
  126. package/dist/ui/assets/{wc-shortcut-config-W9xkruLR.js → wc-shortcut-config-D7BHyx9q.js} +1 -1
  127. package/dist/ui/assets/{wc-sprinkles-CBcq-v8b.js → wc-sprinkles-DtJ7UXGa.js} +2 -2
  128. package/dist/ui/assets/{wc-transcript-export-DlKnVUKb.js → wc-transcript-export-DL_saO8W.js} +2 -2
  129. package/dist/ui/assets/{wc-tray-TNx2CdCn.js → wc-tray-B10JdMjM.js} +4 -4
  130. package/dist/ui/assets/welcome-detection-BpN4YOgF.js +1 -0
  131. package/dist/ui/assets/{whisper-session-2luu77r6.js → whisper-session-ddoyPGcS.js} +2 -2
  132. package/dist/ui/assets/{xai-grok-B-798pyx.js → xai-grok-B_yN3lz2.js} +1 -1
  133. package/dist/ui/assets/{xai-grok-DeVnqIPF.js → xai-grok-CGgkO2x5.js} +1 -1
  134. package/dist/ui/index.html +3 -3
  135. package/dist/ui/packages/webapp/index.html +3 -3
  136. package/package.json +1 -1
  137. package/dist/ui/assets/lick-ws-bridge-Dbgciizf.js +0 -1
  138. package/dist/ui/assets/main-DqQQnATC.js +0 -22
  139. package/dist/ui/assets/provider-store-access-BaOSkkR5.js +0 -1
  140. package/dist/ui/assets/provider-store-access-zm7L5wBV.js +0 -1
  141. package/dist/ui/assets/realm-inprocess-Dtxc3u4C.js +0 -35
  142. package/dist/ui/assets/slicc-version-DmqBvn2A.js +0 -1
  143. package/dist/ui/assets/supervisor-CILv7TN3.js +0 -1
  144. package/dist/ui/assets/welcome-detection-FmDE6-FI.js +0 -1
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Capped exponential backoff, in one place.
3
+ *
4
+ * The delay formula `Math.min(baseMs * 2 ** attempt, capMs)` was hand-rolled
5
+ * nine-plus times across the three floats and webapp internals (CDP reconnect,
6
+ * kernel realm HTTP retry, scoop turn-runner, jshd supervisor, follower model
7
+ * surface, extension side panel, electron/lick reconnect). The copies drifted
8
+ * on base, cap, jitter, and the attempt-exponent clamp — and the storm-hardening
9
+ * (jitter + exponent clamp) added for the CDP reconnect never reached the rest.
10
+ *
11
+ * `nextBackoffDelayMs` is the single definition. `nextCdpReconnectDelayMs`
12
+ * (jitter + exponent clamp + injectable `random` for tests) was the most
13
+ * complete copy and is the template; each site now passes its own
14
+ * `baseMs`/`capMs` instead of re-deriving the formula.
15
+ */
16
+ export interface BackoffOptions {
17
+ /**
18
+ * How many failures have already been recorded, `0` = the gap after the
19
+ * first failure. Clamped to `>= 0`; fractional values are used as-is.
20
+ */
21
+ attempt: number;
22
+ /** Delay for `attempt === 0`, before any doubling. */
23
+ baseMs: number;
24
+ /**
25
+ * Upper bound on the returned delay (jitter included). Omit for an uncapped
26
+ * `baseMs * 2 ** attempt` — matches the sites that never clamped.
27
+ */
28
+ capMs?: number;
29
+ /**
30
+ * Fraction of the exponential delay added as random jitter, in `[0, 1]`.
31
+ * Default `0` (no jitter). The jittered delay still respects `capMs`.
32
+ */
33
+ jitter?: number;
34
+ /**
35
+ * Clamp the exponent so `2 ** shift` cannot overflow after a long failure
36
+ * streak. Omit to leave the exponent unbounded (uncapped callers rely on
37
+ * `capMs` or a bounded `attempt` instead).
38
+ */
39
+ maxShift?: number;
40
+ /** Returns a value in `[0, 1)`; injectable so tests can pin the jitter. */
41
+ random?: () => number;
42
+ }
43
+ /**
44
+ * Delay before the next retry. With no `capMs`/`maxShift`/`jitter` this is
45
+ * exactly `baseMs * 2 ** attempt`; adding them layers on the storm-hardening.
46
+ */
47
+ export declare function nextBackoffDelayMs({ attempt, baseMs, capMs, jitter, maxShift, random, }: BackoffOptions): number;
48
+ //# sourceMappingURL=backoff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backoff.d.ts","sourceRoot":"","sources":["../src/backoff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAU,EACV,QAAQ,EACR,MAAoB,GACrB,EAAE,cAAc,GAAG,MAAM,CAQzB"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Capped exponential backoff, in one place.
3
+ *
4
+ * The delay formula `Math.min(baseMs * 2 ** attempt, capMs)` was hand-rolled
5
+ * nine-plus times across the three floats and webapp internals (CDP reconnect,
6
+ * kernel realm HTTP retry, scoop turn-runner, jshd supervisor, follower model
7
+ * surface, extension side panel, electron/lick reconnect). The copies drifted
8
+ * on base, cap, jitter, and the attempt-exponent clamp — and the storm-hardening
9
+ * (jitter + exponent clamp) added for the CDP reconnect never reached the rest.
10
+ *
11
+ * `nextBackoffDelayMs` is the single definition. `nextCdpReconnectDelayMs`
12
+ * (jitter + exponent clamp + injectable `random` for tests) was the most
13
+ * complete copy and is the template; each site now passes its own
14
+ * `baseMs`/`capMs` instead of re-deriving the formula.
15
+ */
16
+ /**
17
+ * Delay before the next retry. With no `capMs`/`maxShift`/`jitter` this is
18
+ * exactly `baseMs * 2 ** attempt`; adding them layers on the storm-hardening.
19
+ */
20
+ export function nextBackoffDelayMs({ attempt, baseMs, capMs, jitter = 0, maxShift, random = Math.random, }) {
21
+ let shift = Math.max(0, attempt);
22
+ if (maxShift !== undefined)
23
+ shift = Math.min(shift, maxShift);
24
+ const exp = baseMs * 2 ** shift;
25
+ const capped = capMs === undefined ? exp : Math.min(capMs, exp);
26
+ if (jitter <= 0)
27
+ return capped;
28
+ const withJitter = capped + Math.round(capped * jitter * random());
29
+ return capMs === undefined ? withJitter : Math.min(capMs, withJitter);
30
+ }
31
+ //# sourceMappingURL=backoff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backoff.js","sourceRoot":"","sources":["../src/backoff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA8BH;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,EACjC,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAM,GAAG,CAAC,EACV,QAAQ,EACR,MAAM,GAAG,IAAI,CAAC,MAAM,GACL;IACf,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACjC,IAAI,QAAQ,KAAK,SAAS;QAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC;IAChC,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAChE,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IAC/B,MAAM,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IACnE,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACxE,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from './agent-wire-types.js';
2
+ export * from './backoff.js';
2
3
  export * from './base64.js';
3
4
  export * from './bridge-protocol.js';
4
5
  export * from './byte-range.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kCAAkC,CAAC;AACjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kCAAkC,CAAC;AACjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  // Re-exports added in Task 1.2 (secret-masking) and Task 1.3 (secrets-pipeline).
2
2
  export * from './agent-wire-types.js';
3
+ export * from './backoff.js';
3
4
  export * from './base64.js';
4
5
  export * from './bridge-protocol.js';
5
6
  export * from './byte-range.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kCAAkC,CAAC;AACjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kCAAkC,CAAC;AACjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
@@ -10,7 +10,7 @@
10
10
  // `slicc-cli`'s Go follower (same signalling + `hello` handshake + data-channel
11
11
  // label), reusing the shared wire types.
12
12
  import { randomUUID } from 'node:crypto';
13
- import { isTrayChunkFrame, successorVersionFromLinkHeader, TRAY_MAX_PENDING_REASSEMBLIES, TRAY_SYNC_PROTOCOL_VERSION, } from './_shared/index.js';
13
+ import { isTrayChunkFrame, nextBackoffDelayMs, successorVersionFromLinkHeader, TRAY_MAX_PENDING_REASSEMBLIES, TRAY_SYNC_PROTOCOL_VERSION, } from './_shared/index.js';
14
14
  // werift is a pure-TS WebRTC stack (no native build) that interops with the
15
15
  // browser leader's RTCPeerConnection.
16
16
  import { RTCPeerConnection, } from 'werift';
@@ -280,7 +280,11 @@ export class ElectronTrayFollower {
280
280
  this.stop();
281
281
  return;
282
282
  }
283
- const delayMs = Math.min(1000 * 2 ** this.reconnectAttempts, 15000);
283
+ const delayMs = nextBackoffDelayMs({
284
+ attempt: this.reconnectAttempts,
285
+ baseMs: 1000,
286
+ capMs: 15000,
287
+ });
284
288
  this.reconnectAttempts++;
285
289
  this.log(`[electron-follower] tray-control channel lost — reconnecting in ${delayMs}ms ` +
286
290
  `(attempt ${this.reconnectAttempts}/${this.maxReconnects})`);