@moltos/sdk 0.16.9 → 0.16.10

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/dist/index.d.mts CHANGED
@@ -717,6 +717,8 @@ declare class WalletSDK {
717
717
  on_escrow_release?: (event: WalletEvent) => void;
718
718
  on_any?: (event: WalletEvent) => void;
719
719
  on_error?: (err: Error) => void;
720
+ /** Called each time the connection is successfully (re)established after a drop */
721
+ on_reconnect?: (attempt: number) => void;
720
722
  }): Promise<() => void>;
721
723
  }
722
724
  interface WalletEvent {
package/dist/index.d.ts CHANGED
@@ -717,6 +717,8 @@ declare class WalletSDK {
717
717
  on_escrow_release?: (event: WalletEvent) => void;
718
718
  on_any?: (event: WalletEvent) => void;
719
719
  on_error?: (err: Error) => void;
720
+ /** Called each time the connection is successfully (re)established after a drop */
721
+ on_reconnect?: (attempt: number) => void;
720
722
  }): Promise<() => void>;
721
723
  }
722
724
  interface WalletEvent {
package/dist/index.js CHANGED
@@ -888,12 +888,17 @@ var WalletSDK = class {
888
888
  }
889
889
  let reconnectDelay = 1e3;
890
890
  const MAX_RECONNECT_DELAY = 3e4;
891
+ let reconnectAttempt = 0;
891
892
  function connect() {
892
893
  if (closed) return;
893
894
  if (typeof EventSource !== "undefined") {
894
895
  es = new EventSource(url);
895
896
  es.onmessage = (e) => {
896
- reconnectDelay = 1e3;
897
+ if (reconnectDelay !== 1e3) {
898
+ reconnectDelay = 1e3;
899
+ reconnectAttempt = 0;
900
+ callbacks.on_reconnect?.(reconnectAttempt);
901
+ }
897
902
  try {
898
903
  const data = JSON.parse(e.data);
899
904
  if (data.type !== "connected" && data.type !== "ping") dispatch(data);
@@ -902,6 +907,7 @@ var WalletSDK = class {
902
907
  };
903
908
  es.onerror = () => {
904
909
  if (closed) return;
910
+ reconnectAttempt++;
905
911
  callbacks.on_error?.(new Error(`SSE connection error \u2014 reconnecting in ${reconnectDelay / 1e3}s`));
906
912
  es?.close();
907
913
  setTimeout(() => {
@@ -916,7 +922,9 @@ var WalletSDK = class {
916
922
  try {
917
923
  const resp = await (0, import_cross_fetch.default)(url);
918
924
  if (!resp.ok || !resp.body) throw new Error(`SSE connect failed: ${resp.status}`);
925
+ if (reconnectAttempt > 0) callbacks.on_reconnect?.(reconnectAttempt);
919
926
  reconnectDelay = 1e3;
927
+ reconnectAttempt = 0;
920
928
  const reader = resp.body.getReader();
921
929
  const decoder = new TextDecoder();
922
930
  let buf = "";
@@ -938,6 +946,7 @@ var WalletSDK = class {
938
946
  }
939
947
  } catch (e) {
940
948
  if (closed) break;
949
+ reconnectAttempt++;
941
950
  callbacks.on_error?.(new Error(`SSE dropped \u2014 reconnecting in ${reconnectDelay / 1e3}s`));
942
951
  await new Promise((r) => setTimeout(r, reconnectDelay));
943
952
  reconnectDelay = Math.min(reconnectDelay * 2, MAX_RECONNECT_DELAY);
package/dist/index.mjs CHANGED
@@ -728,12 +728,17 @@ var WalletSDK = class {
728
728
  }
729
729
  let reconnectDelay = 1e3;
730
730
  const MAX_RECONNECT_DELAY = 3e4;
731
+ let reconnectAttempt = 0;
731
732
  function connect() {
732
733
  if (closed) return;
733
734
  if (typeof EventSource !== "undefined") {
734
735
  es = new EventSource(url);
735
736
  es.onmessage = (e) => {
736
- reconnectDelay = 1e3;
737
+ if (reconnectDelay !== 1e3) {
738
+ reconnectDelay = 1e3;
739
+ reconnectAttempt = 0;
740
+ callbacks.on_reconnect?.(reconnectAttempt);
741
+ }
737
742
  try {
738
743
  const data = JSON.parse(e.data);
739
744
  if (data.type !== "connected" && data.type !== "ping") dispatch(data);
@@ -742,6 +747,7 @@ var WalletSDK = class {
742
747
  };
743
748
  es.onerror = () => {
744
749
  if (closed) return;
750
+ reconnectAttempt++;
745
751
  callbacks.on_error?.(new Error(`SSE connection error \u2014 reconnecting in ${reconnectDelay / 1e3}s`));
746
752
  es?.close();
747
753
  setTimeout(() => {
@@ -756,7 +762,9 @@ var WalletSDK = class {
756
762
  try {
757
763
  const resp = await fetch2(url);
758
764
  if (!resp.ok || !resp.body) throw new Error(`SSE connect failed: ${resp.status}`);
765
+ if (reconnectAttempt > 0) callbacks.on_reconnect?.(reconnectAttempt);
759
766
  reconnectDelay = 1e3;
767
+ reconnectAttempt = 0;
760
768
  const reader = resp.body.getReader();
761
769
  const decoder = new TextDecoder();
762
770
  let buf = "";
@@ -778,6 +786,7 @@ var WalletSDK = class {
778
786
  }
779
787
  } catch (e) {
780
788
  if (closed) break;
789
+ reconnectAttempt++;
781
790
  callbacks.on_error?.(new Error(`SSE dropped \u2014 reconnecting in ${reconnectDelay / 1e3}s`));
782
791
  await new Promise((r) => setTimeout(r, reconnectDelay));
783
792
  reconnectDelay = Math.min(reconnectDelay * 2, MAX_RECONNECT_DELAY);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moltos/sdk",
3
- "version": "0.16.9",
3
+ "version": "0.16.10",
4
4
  "description": "MoltOS \u2014 The Agent Operating System SDK. Build agents that earn, persist, and compound trust.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",