@marimo-team/frontend 0.19.5-dev12 → 0.19.5-dev13

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 (68) hide show
  1. package/dist/assets/{CellStatus-DIB2SP1L.js → CellStatus-CkHNEnSR.js} +1 -1
  2. package/dist/assets/{JsonOutput-CjaOTAEV.js → JsonOutput-DMMGGSXv.js} +1 -1
  3. package/dist/assets/{MarimoErrorOutput-4Wza14O4.js → MarimoErrorOutput-DuFSglTT.js} +1 -1
  4. package/dist/assets/{RenderHTML-BLIsiKhC.js → RenderHTML-wR1-1y1P.js} +1 -1
  5. package/dist/assets/{add-cell-with-ai-BMnjZTlS.js → add-cell-with-ai-CbaApRYx.js} +1 -1
  6. package/dist/assets/{add-database-form-BvPpJIGk.js → add-database-form-DHXYzyiI.js} +1 -1
  7. package/dist/assets/{agent-panel-C-ms_FO6.js → agent-panel-3PTqPJTj.js} +1 -1
  8. package/dist/assets/{ai-model-dropdown-B08ON-2S.js → ai-model-dropdown-ChmbKArd.js} +1 -1
  9. package/dist/assets/{app-config-button-D0ZPIPDx.js → app-config-button-FyYJ6Tyk.js} +1 -1
  10. package/dist/assets/{cell-editor-sMMkj7mr.js → cell-editor-6dMXQ0RL.js} +1 -1
  11. package/dist/assets/{cell-link-BiLNVg16.js → cell-link-DVWmB29p.js} +1 -1
  12. package/dist/assets/{cells-DOHFOwU9.js → cells-dG69fEtz.js} +1 -1
  13. package/dist/assets/{chat-components-D2BYV-Nb.js → chat-components-WF7xAOzH.js} +1 -1
  14. package/dist/assets/{chat-display-DSJUTa-_.js → chat-display-CSZE5mc2.js} +1 -1
  15. package/dist/assets/{chat-panel-zNxTxOhn.js → chat-panel-DicpjkOA.js} +1 -1
  16. package/dist/assets/{client-BsW5R8oX.js → client-pvw6NZnl.js} +1 -1
  17. package/dist/assets/{column-preview-B50wQ0Ot.js → column-preview-BI3bmg8t.js} +1 -1
  18. package/dist/assets/{command-2PnW_0Fg.js → command-C4F8xArq.js} +1 -1
  19. package/dist/assets/{command-palette-DeD72khR.js → command-palette-CflKYAtT.js} +1 -1
  20. package/dist/assets/{common-D9bTExUN.js → common-BWquCRv0.js} +1 -1
  21. package/dist/assets/{datasource-oykVdER6.js → datasource-wJp5J7GL.js} +1 -1
  22. package/dist/assets/{dependency-graph-panel--eDEb5es.js → dependency-graph-panel-C5ASDepz.js} +1 -1
  23. package/dist/assets/{documentation-panel-BwJRvSfP.js → documentation-panel-DjP7xcas.js} +1 -1
  24. package/dist/assets/{download-DJ80tw7s.js → download-B5nrQ7oh.js} +1 -1
  25. package/dist/assets/{edit-page-BAGum-NA.js → edit-page-DmZDitK1.js} +3 -3
  26. package/dist/assets/{error-panel-Cr_stfAB.js → error-panel-C3ZWSKyy.js} +1 -1
  27. package/dist/assets/{es-DuPxyYL6.js → es-CXayDCrt.js} +1 -1
  28. package/dist/assets/{file-explorer-panel-zZHbMUNQ.js → file-explorer-panel-DEAwmqNS.js} +1 -1
  29. package/dist/assets/{floating-outline-CDdWi8ym.js → floating-outline-DmMqfgvM.js} +1 -1
  30. package/dist/assets/{focus-CR0KHFJS.js → focus-De0fAFlq.js} +1 -1
  31. package/dist/assets/{form-B67Ty7BQ.js → form-CA9PbMgX.js} +1 -1
  32. package/dist/assets/{globals-ZKjX9iTa.js → globals-G25bi28X.js} +1 -1
  33. package/dist/assets/{home-page-CnBuRwhH.js → home-page-D-HacWwj.js} +1 -1
  34. package/dist/assets/{index-BF7CLiDV.js → index-C465IW42.js} +3 -3
  35. package/dist/assets/{kiosk-mode-Bhm4ewE9.js → kiosk-mode-BzPmO2rQ.js} +1 -1
  36. package/dist/assets/{layout-D0sSEr_l.js → layout-CcJbEqnj.js} +1 -1
  37. package/dist/assets/{logs-panel-CrGvVFsH.js → logs-panel-D81EnMXO.js} +1 -1
  38. package/dist/assets/{markdown-renderer-Cc2ofxZp.js → markdown-renderer-CRVtPH5D.js} +1 -1
  39. package/dist/assets/{mode-C_epPmqC.js → mode-ChYHAM7i.js} +1 -1
  40. package/dist/assets/{name-cell-input-B67C4hsZ.js → name-cell-input-CpZt0vsF.js} +1 -1
  41. package/dist/assets/{outline-panel-BE3f5fbF.js → outline-panel-C9vRV5y9.js} +1 -1
  42. package/dist/assets/{packages-panel-DHD9trI4.js → packages-panel-BmXADyDH.js} +1 -1
  43. package/dist/assets/{panels-DW9Jl_lS.js → panels-D2M0X4Da.js} +1 -1
  44. package/dist/assets/{process-output-Dhk5x5Si.js → process-output-Nbtlvi7C.js} +1 -1
  45. package/dist/assets/{readonly-python-code-CtOB8ln7.js → readonly-python-code-Crr_9chk.js} +1 -1
  46. package/dist/assets/{run-page-wxnAcqgQ.js → run-page-Zmcxhaf1.js} +1 -1
  47. package/dist/assets/{scratchpad-panel-Cvw4J59G.js → scratchpad-panel-B7hgkWTO.js} +1 -1
  48. package/dist/assets/{session-panel-BEd0xHMf.js → session-panel-CCw-hpml.js} +1 -1
  49. package/dist/assets/{snippets-panel-CLN8UIPX.js → snippets-panel-CftBFK7b.js} +1 -1
  50. package/dist/assets/{state-NxtIFd8O.js → state-B-q5vJAN.js} +1 -1
  51. package/dist/assets/{state-DMt8e_WU.js → state-B_RAyPJZ.js} +1 -1
  52. package/dist/assets/{switch-Dx7DXx7M.js → switch-CH7JBQ6U.js} +1 -1
  53. package/dist/assets/{textarea-C1bIhGG5.js → textarea-C1B1m2rU.js} +1 -1
  54. package/dist/assets/{tracing-CbPFWbpJ.js → tracing-CAY6F2mI.js} +1 -1
  55. package/dist/assets/{tracing-panel-Cvn85TN7.js → tracing-panel-Dl60o0Ok.js} +2 -2
  56. package/dist/assets/{types-gZ-fYTIG.js → types-D_eS2JEf.js} +1 -1
  57. package/dist/assets/{useAddCell-Bfk6Ierz.js → useAddCell-BSOKbqcD.js} +1 -1
  58. package/dist/assets/{useCellActionButton-CBvhjulK.js → useCellActionButton-fUOTJQY2.js} +1 -1
  59. package/dist/assets/{useDeleteCell-BCa6iFd7.js → useDeleteCell-CNPKeGD6.js} +1 -1
  60. package/dist/assets/{useDependencyPanelTab-DguVbV3t.js → useDependencyPanelTab-Coe6wSmK.js} +1 -1
  61. package/dist/assets/{useNotebookActions-_oHKWjBU.js → useNotebookActions-DSCcRoTB.js} +1 -1
  62. package/dist/assets/{useRunCells-DWz8DvYV.js → useRunCells-B7y_sG8R.js} +1 -1
  63. package/dist/assets/{useSplitCell-B9ZXszdo.js → useSplitCell-D5TLJkuE.js} +1 -1
  64. package/dist/assets/{utilities.esm-Cw_BKnGj.js → utilities.esm-CRKmwR4M.js} +1 -1
  65. package/dist/index.html +31 -31
  66. package/package.json +1 -1
  67. package/src/core/lsp/__tests__/transport.test.ts +149 -0
  68. package/src/core/lsp/transport.ts +48 -0
@@ -23,6 +23,11 @@ export interface ReconnectingWebSocketTransportOptions {
23
23
  onReconnect?: () => Promise<void>;
24
24
  }
25
25
 
26
+ interface Subscription {
27
+ event: "pending" | "notification" | "response" | "error";
28
+ handler: Parameters<Transport["subscribe"]>[1];
29
+ }
30
+
26
31
  /**
27
32
  * A WebSocket transport that automatically reconnects when the connection is lost.
28
33
  * This handles cases like computer sleep/wake or network interruptions.
@@ -33,6 +38,7 @@ export class ReconnectingWebSocketTransport extends Transport {
33
38
  private connectionPromise: Promise<void> | undefined;
34
39
  private isClosed = false;
35
40
  private hasConnectedBefore = false;
41
+ private pendingSubscriptions: Subscription[] = [];
36
42
 
37
43
  constructor(options: ReconnectingWebSocketTransportOptions) {
38
44
  super();
@@ -55,6 +61,12 @@ export class ReconnectingWebSocketTransport extends Transport {
55
61
 
56
62
  // Create a new delegate
57
63
  this.delegate = new WebSocketTransport(this.options.getWsUrl());
64
+
65
+ // Re-register all pending subscriptions on the new delegate
66
+ for (const { event, handler } of this.pendingSubscriptions) {
67
+ this.delegate.subscribe(event, handler);
68
+ }
69
+
58
70
  return this.delegate;
59
71
  }
60
72
 
@@ -134,6 +146,42 @@ export class ReconnectingWebSocketTransport extends Transport {
134
146
  this.connectionPromise = undefined;
135
147
  }
136
148
 
149
+ override subscribe(...args: Parameters<Transport["subscribe"]>): void {
150
+ // Register handler on parent Transport
151
+ super.subscribe(...args);
152
+
153
+ const [event, handler] = args;
154
+
155
+ // Track the subscription
156
+ this.pendingSubscriptions.push({ event, handler });
157
+
158
+ // Also register on delegate if it exists
159
+ if (this.delegate) {
160
+ this.delegate.subscribe(event, handler);
161
+ }
162
+ }
163
+
164
+ override unsubscribe(
165
+ ...args: Parameters<Transport["unsubscribe"]>
166
+ ): import("events").EventEmitter | undefined {
167
+ // Unregister from parent
168
+ const result = super.unsubscribe(...args);
169
+
170
+ const [event, handler] = args;
171
+
172
+ // Remove from pending subscriptions
173
+ this.pendingSubscriptions = this.pendingSubscriptions.filter(
174
+ (sub) => !(sub.event === event && sub.handler === handler),
175
+ );
176
+
177
+ // Also unregister from delegate if it exists
178
+ if (this.delegate) {
179
+ this.delegate.unsubscribe(event, handler);
180
+ }
181
+
182
+ return result;
183
+ }
184
+
137
185
  override async sendData(
138
186
  data: JSONRPCRequestData,
139
187
  timeout: number | null | undefined,