@sena-ai/platform-connector 0.1.1 → 0.1.2

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.
@@ -7,7 +7,7 @@ export type PlatformConnectorOptions = {
7
7
  connectKey: string;
8
8
  /** Thinking message (optional) */
9
9
  thinkingMessage?: string;
10
- /** Transport type: 'websocket' (default), 'sse', or 'auto' */
10
+ /** Transport type: 'auto' (default), 'websocket', or 'sse' */
11
11
  transport?: TransportType;
12
12
  };
13
13
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAMV,MAAM,eAAe,CAAA;AAKtB,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,WAAW,GAAG,MAAM,CAAA;AAExD,MAAM,MAAM,wBAAwB,GAAG;IACrC,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAA;IACnB,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAA;IAClB,kCAAkC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,aAAa,CAAA;CAC1B,CAAA;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,SAAS,CA6K9E"}
1
+ {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAMV,MAAM,eAAe,CAAA;AAMtB,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,WAAW,GAAG,MAAM,CAAA;AAExD,MAAM,MAAM,wBAAwB,GAAG;IACrC,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAA;IACnB,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAA;IAClB,kCAAkC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,aAAa,CAAA;CAC1B,CAAA;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,SAAS,CA4K9E"}
package/dist/connector.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { createSSETransport } from './transports/sse.js';
2
2
  import { createWebSocketTransport } from './transports/websocket.js';
3
+ import { createAutoTransport } from './transports/auto.js';
3
4
  /**
4
5
  * Platform Connector: connects to the platform via SSE or WebSocket.
5
6
  *
@@ -10,7 +11,7 @@ import { createWebSocketTransport } from './transports/websocket.js';
10
11
  */
11
12
  export function platformConnector(options) {
12
13
  const { platformUrl, connectKey, thinkingMessage } = options;
13
- const transportType = options.transport ?? 'websocket';
14
+ const transportType = options.transport ?? 'auto';
14
15
  const baseUrl = platformUrl.replace(/\/$/, '');
15
16
  let transport = null;
16
17
  let engine = null;
@@ -67,8 +68,7 @@ export function platformConnector(options) {
67
68
  return createWebSocketTransport(streamUrl);
68
69
  }
69
70
  if (transportType === 'auto') {
70
- // Auto-detect: prefer WebSocket (required for CF Workers relay)
71
- return createWebSocketTransport(streamUrl);
71
+ return createAutoTransport(streamUrl);
72
72
  }
73
73
  return createSSETransport(streamUrl);
74
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connector.js","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connector.js","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Transport } from './types.js';
2
+ /**
3
+ * Auto-detect transport: tries WebSocket first, falls back to SSE.
4
+ *
5
+ * - CF Workers relay only supports WebSocket (returns 426 for SSE)
6
+ * - Node.js relay only supports SSE
7
+ * - Auto mode probes WebSocket and falls back transparently
8
+ */
9
+ export declare function createAutoTransport(url: string): Transport;
10
+ //# sourceMappingURL=auto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../../src/transports/auto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAI3C;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CA4E1D"}
@@ -0,0 +1,76 @@
1
+ import { createWebSocketTransport } from './websocket.js';
2
+ import { createSSETransport } from './sse.js';
3
+ /**
4
+ * Auto-detect transport: tries WebSocket first, falls back to SSE.
5
+ *
6
+ * - CF Workers relay only supports WebSocket (returns 426 for SSE)
7
+ * - Node.js relay only supports SSE
8
+ * - Auto mode probes WebSocket and falls back transparently
9
+ */
10
+ export function createAutoTransport(url) {
11
+ let activeTransport = null;
12
+ let resolved = false;
13
+ const pendingListeners = [];
14
+ let pendingErrorHandler = null;
15
+ function applyListeners(transport) {
16
+ for (const { event, handler } of pendingListeners) {
17
+ transport.on(event, handler);
18
+ }
19
+ if (pendingErrorHandler) {
20
+ transport.onError(pendingErrorHandler);
21
+ }
22
+ }
23
+ return {
24
+ connect() {
25
+ // Try WebSocket first
26
+ const wsTransport = createWebSocketTransport(url);
27
+ applyListeners(wsTransport);
28
+ // Override error handler to detect 426 and fall back
29
+ wsTransport.onError((err) => {
30
+ // Check for 426 or connection failure indicating WS not supported
31
+ const isUpgradeError = err instanceof Error
32
+ ? err.message.includes('426')
33
+ : typeof err === 'object' &&
34
+ err !== null &&
35
+ 'code' in err &&
36
+ err.code === 426;
37
+ if (!resolved && isUpgradeError) {
38
+ console.log('[platform] WebSocket not supported, falling back to SSE');
39
+ wsTransport.close();
40
+ const sseTransport = createSSETransport(url);
41
+ applyListeners(sseTransport);
42
+ activeTransport = sseTransport;
43
+ resolved = true;
44
+ sseTransport.connect();
45
+ return;
46
+ }
47
+ // Not a fallback-worthy error — forward to user handler
48
+ if (pendingErrorHandler) {
49
+ pendingErrorHandler(err);
50
+ }
51
+ });
52
+ activeTransport = wsTransport;
53
+ resolved = true;
54
+ wsTransport.connect();
55
+ },
56
+ on(event, handler) {
57
+ pendingListeners.push({ event, handler });
58
+ if (activeTransport) {
59
+ activeTransport.on(event, handler);
60
+ }
61
+ },
62
+ onError(handler) {
63
+ pendingErrorHandler = handler;
64
+ if (activeTransport) {
65
+ activeTransport.onError(handler);
66
+ }
67
+ },
68
+ close() {
69
+ if (activeTransport) {
70
+ activeTransport.close();
71
+ activeTransport = null;
72
+ }
73
+ },
74
+ };
75
+ }
76
+ //# sourceMappingURL=auto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto.js","sourceRoot":"","sources":["../../src/transports/auto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAE7C;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,IAAI,eAAe,GAAqB,IAAI,CAAA;IAC5C,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,MAAM,gBAAgB,GAA8D,EAAE,CAAA;IACtF,IAAI,mBAAmB,GAAsC,IAAI,CAAA;IAEjE,SAAS,cAAc,CAAC,SAAoB;QAC1C,KAAK,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,gBAAgB,EAAE,CAAC;YAClD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC9B,CAAC;QACD,IAAI,mBAAmB,EAAE,CAAC;YACxB,SAAS,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO;YACL,sBAAsB;YACtB,MAAM,WAAW,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAA;YACjD,cAAc,CAAC,WAAW,CAAC,CAAA;YAE3B,qDAAqD;YACrD,WAAW,CAAC,OAAO,CAAC,CAAC,GAAY,EAAE,EAAE;gBACnC,kEAAkE;gBAClE,MAAM,cAAc,GAClB,GAAG,YAAY,KAAK;oBAClB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAC7B,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ;wBACvB,GAAG,KAAK,IAAI;wBACZ,MAAM,IAAI,GAAG;wBACZ,GAAwB,CAAC,IAAI,KAAK,GAAG,CAAA;gBAE5C,IAAI,CAAC,QAAQ,IAAI,cAAc,EAAE,CAAC;oBAChC,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAA;oBACtE,WAAW,CAAC,KAAK,EAAE,CAAA;oBAEnB,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;oBAC5C,cAAc,CAAC,YAAY,CAAC,CAAA;oBAC5B,eAAe,GAAG,YAAY,CAAA;oBAC9B,QAAQ,GAAG,IAAI,CAAA;oBACf,YAAY,CAAC,OAAO,EAAE,CAAA;oBACtB,OAAM;gBACR,CAAC;gBAED,wDAAwD;gBACxD,IAAI,mBAAmB,EAAE,CAAC;oBACxB,mBAAmB,CAAC,GAAG,CAAC,CAAA;gBAC1B,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,eAAe,GAAG,WAAW,CAAA;YAC7B,QAAQ,GAAG,IAAI,CAAA;YACf,WAAW,CAAC,OAAO,EAAE,CAAA;QACvB,CAAC;QAED,EAAE,CAAC,KAAa,EAAE,OAA+B;YAC/C,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;YACzC,IAAI,eAAe,EAAE,CAAC;gBACpB,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YACpC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,OAAiC;YACvC,mBAAmB,GAAG,OAAO,CAAA;YAC7B,IAAI,eAAe,EAAE,CAAC;gBACpB,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YAClC,CAAC;QACH,CAAC;QAED,KAAK;YACH,IAAI,eAAe,EAAE,CAAC;gBACpB,eAAe,CAAC,KAAK,EAAE,CAAA;gBACvB,eAAe,GAAG,IAAI,CAAA;YACxB,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sena-ai/platform-connector",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {