lemon-model 1.2.3 → 1.4.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/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/socket/decorators.js +266 -0
- package/dist/esm/socket/decorators.js.map +1 -0
- package/dist/esm/socket/index.js +2 -0
- package/dist/esm/socket/index.js.map +1 -1
- package/dist/esm/socket/multi.js +94 -0
- package/dist/esm/socket/multi.js.map +1 -0
- package/dist/esm/socket/socket.js +82 -22
- package/dist/esm/socket/socket.js.map +1 -1
- package/dist/esm/socket/transport.js +385 -3
- package/dist/esm/socket/transport.js.map +1 -1
- package/dist/esm/sync/client.js +166 -0
- package/dist/esm/sync/client.js.map +1 -0
- package/dist/esm/sync/index.js +14 -0
- package/dist/esm/sync/index.js.map +1 -0
- package/dist/esm/sync/machine.js +181 -0
- package/dist/esm/sync/machine.js.map +1 -0
- package/dist/esm/sync/network.js +273 -0
- package/dist/esm/sync/network.js.map +1 -0
- package/dist/esm/sync/testing.js +44 -0
- package/dist/esm/sync/testing.js.map +1 -0
- package/dist/esm/sync/ticker.js +53 -0
- package/dist/esm/sync/ticker.js.map +1 -0
- package/dist/esm/sync/types.js +2 -0
- package/dist/{proxy → esm/sync}/types.js.map +1 -1
- package/dist/esm/upload/engine/engine.js +166 -0
- package/dist/esm/upload/engine/engine.js.map +1 -0
- package/dist/esm/upload/engine/executors.js +57 -0
- package/dist/esm/upload/engine/executors.js.map +1 -0
- package/dist/esm/upload/engine/index.js +13 -0
- package/dist/esm/upload/engine/index.js.map +1 -0
- package/dist/esm/upload/engine/progress.js +52 -0
- package/dist/esm/upload/engine/progress.js.map +1 -0
- package/dist/esm/upload/index.js +11 -0
- package/dist/esm/upload/index.js.map +1 -0
- package/dist/esm/upload/testing.js +73 -0
- package/dist/esm/upload/testing.js.map +1 -0
- package/dist/esm/upload/types.js +69 -0
- package/dist/esm/upload/types.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/socket/client/index.d.ts +9 -0
- package/dist/socket/client/index.js +26 -0
- package/dist/socket/client/index.js.map +1 -0
- package/dist/socket/client/keep-alive-controller.d.ts +35 -0
- package/dist/socket/client/keep-alive-controller.js +101 -0
- package/dist/socket/client/keep-alive-controller.js.map +1 -0
- package/dist/socket/client/message-router.d.ts +15 -0
- package/dist/socket/client/message-router.js +52 -0
- package/dist/socket/client/message-router.js.map +1 -0
- package/dist/socket/client/pending-request-store.d.ts +24 -0
- package/dist/socket/client/pending-request-store.js +78 -0
- package/dist/socket/client/pending-request-store.js.map +1 -0
- package/dist/socket/client/reconnect-controller.d.ts +56 -0
- package/dist/socket/client/reconnect-controller.js +177 -0
- package/dist/socket/client/reconnect-controller.js.map +1 -0
- package/dist/socket/client/rotation-controller.d.ts +32 -0
- package/dist/socket/client/rotation-controller.js +76 -0
- package/dist/socket/client/rotation-controller.js.map +1 -0
- package/dist/socket/client/shared-timer-scheduler.d.ts +17 -0
- package/dist/socket/client/shared-timer-scheduler.js +77 -0
- package/dist/socket/client/shared-timer-scheduler.js.map +1 -0
- package/dist/socket/client/socket-client.d.ts +2 -0
- package/dist/socket/client/socket-client.js +219 -0
- package/dist/socket/client/socket-client.js.map +1 -0
- package/dist/socket/client/types.d.ts +101 -0
- package/dist/socket/client/types.js +3 -0
- package/dist/socket/client/types.js.map +1 -0
- package/dist/socket/client/websocket-client-transport.d.ts +23 -0
- package/dist/socket/client/websocket-client-transport.js +152 -0
- package/dist/socket/client/websocket-client-transport.js.map +1 -0
- package/dist/socket/decorators.d.ts +38 -0
- package/dist/socket/decorators.js +271 -0
- package/dist/socket/decorators.js.map +1 -0
- package/dist/socket/index.d.ts +2 -0
- package/dist/socket/index.js +2 -0
- package/dist/socket/index.js.map +1 -1
- package/dist/socket/multi.d.ts +33 -0
- package/dist/socket/multi.js +98 -0
- package/dist/socket/multi.js.map +1 -0
- package/dist/socket/socket.d.ts +22 -4
- package/dist/socket/socket.js +82 -22
- package/dist/socket/socket.js.map +1 -1
- package/dist/socket/transport.d.ts +124 -6
- package/dist/socket/transport.js +389 -4
- package/dist/socket/transport.js.map +1 -1
- package/dist/sync/client.d.ts +16 -0
- package/dist/sync/client.js +171 -0
- package/dist/sync/client.js.map +1 -0
- package/dist/sync/index.d.ts +10 -0
- package/dist/sync/index.js +30 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/machine.d.ts +3 -0
- package/dist/sync/machine.js +185 -0
- package/dist/sync/machine.js.map +1 -0
- package/dist/sync/network.d.ts +38 -0
- package/dist/sync/network.js +278 -0
- package/dist/sync/network.js.map +1 -0
- package/dist/sync/testing.d.ts +38 -0
- package/dist/sync/testing.js +48 -0
- package/dist/sync/testing.js.map +1 -0
- package/dist/sync/ticker.d.ts +21 -0
- package/dist/sync/ticker.js +57 -0
- package/dist/sync/ticker.js.map +1 -0
- package/dist/sync/types.d.ts +115 -0
- package/dist/sync/types.js +3 -0
- package/dist/sync/types.js.map +1 -0
- package/dist/upload/engine/engine.d.ts +52 -0
- package/dist/upload/engine/engine.js +172 -0
- package/dist/upload/engine/engine.js.map +1 -0
- package/dist/upload/engine/executors.d.ts +44 -0
- package/dist/upload/engine/executors.js +62 -0
- package/dist/upload/engine/executors.js.map +1 -0
- package/dist/upload/engine/index.d.ts +12 -0
- package/dist/upload/engine/index.js +29 -0
- package/dist/upload/engine/index.js.map +1 -0
- package/dist/upload/engine/progress.d.ts +48 -0
- package/dist/upload/engine/progress.js +57 -0
- package/dist/upload/engine/progress.js.map +1 -0
- package/dist/upload/index.d.ts +10 -0
- package/dist/{proxy → upload}/index.js +6 -8
- package/dist/upload/index.js.map +1 -0
- package/dist/upload/testing.d.ts +21 -0
- package/dist/upload/testing.js +76 -0
- package/dist/upload/testing.js.map +1 -0
- package/dist/upload/types.d.ts +230 -0
- package/dist/upload/types.js +74 -0
- package/dist/upload/types.js.map +1 -0
- package/package.json +26 -1
- package/dist/proxy/index.d.ts +0 -12
- package/dist/proxy/index.js.map +0 -1
- package/dist/proxy/proxy.d.ts +0 -75
- package/dist/proxy/proxy.js +0 -198
- package/dist/proxy/proxy.js.map +0 -1
- package/dist/proxy/transport.d.ts +0 -123
- package/dist/proxy/transport.js +0 -401
- package/dist/proxy/transport.js.map +0 -1
- package/dist/proxy/types.d.ts +0 -89
- package/dist/proxy/types.js +0 -12
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `proxy/transport.ts`
|
|
3
|
-
* - browser/WebSocket helpers for receiving proxy generate results over JSONTransport.
|
|
4
|
-
* - depends on a minimal `WebSocketCompatible` contract, not the DOM `WebSocket` type,
|
|
5
|
-
* so it stays usable in browsers, Node, and custom UI runtimes.
|
|
6
|
-
*
|
|
7
|
-
* @author Claire <claude@lemoncloud.io>
|
|
8
|
-
* @date 2026-06-08 initial version
|
|
9
|
-
*
|
|
10
|
-
* @copyright (C) lemoncloud.io 2026 - All Rights Reserved.
|
|
11
|
-
*/
|
|
12
|
-
import { JSONTransportOptions } from '../socket/transport';
|
|
13
|
-
import { NetworkMessageHandler, NetworkSupportable, SocketErrorHandler, SocketNetworkOptions, SocketReadyState, SocketUnsubscribe } from '../socket/types';
|
|
14
|
-
import { ProxyTransportReceiver } from './types';
|
|
15
|
-
/** event map required from a browser-like WebSocket object */
|
|
16
|
-
export interface WebSocketCompatibleEventMap {
|
|
17
|
-
open: unknown;
|
|
18
|
-
close: unknown;
|
|
19
|
-
error: unknown;
|
|
20
|
-
message: {
|
|
21
|
-
data: unknown;
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Minimal WebSocket-compatible contract.
|
|
26
|
-
*
|
|
27
|
-
* This keeps the proxy package usable in browsers, tests, and custom UI runtimes
|
|
28
|
-
* without depending directly on the DOM `WebSocket` type.
|
|
29
|
-
*/
|
|
30
|
-
export interface WebSocketCompatible {
|
|
31
|
-
readonly CONNECTING?: number;
|
|
32
|
-
readonly OPEN?: number;
|
|
33
|
-
readonly CLOSING?: number;
|
|
34
|
-
readonly CLOSED?: number;
|
|
35
|
-
readonly readyState: number;
|
|
36
|
-
send(data: string): void;
|
|
37
|
-
addEventListener<K extends keyof WebSocketCompatibleEventMap>(type: K, handler: (event: WebSocketCompatibleEventMap[K]) => void, options?: {
|
|
38
|
-
once?: boolean;
|
|
39
|
-
}): void;
|
|
40
|
-
removeEventListener<K extends keyof WebSocketCompatibleEventMap>(type: K, handler: (event: WebSocketCompatibleEventMap[K]) => void): void;
|
|
41
|
-
}
|
|
42
|
-
/** options for the standard WebSocket connection-id handshake */
|
|
43
|
-
export interface WebSocketConnectionIdOptions {
|
|
44
|
-
/** message sent after socket open, usually `device.save` */
|
|
45
|
-
connectMessage?: string;
|
|
46
|
-
/** timeout for open and connection-id response */
|
|
47
|
-
timeoutMs?: number;
|
|
48
|
-
/** custom extractor when a service returns a different connection-id shape */
|
|
49
|
-
extract?: (message: unknown) => string | undefined;
|
|
50
|
-
}
|
|
51
|
-
/** options for receiving a single JSONTransport response */
|
|
52
|
-
export interface ProxyTransportReceiverOptions<T extends object = object> {
|
|
53
|
-
timeoutMs?: number;
|
|
54
|
-
jsonTransport?: JSONTransportOptions;
|
|
55
|
-
validate?: (data: T) => boolean;
|
|
56
|
-
/**
|
|
57
|
-
* Unwrap a raw WebSocket message into a transport packet string.
|
|
58
|
-
* - by default the raw message is expected to be a transport packet directly.
|
|
59
|
-
* - set this when the gateway wraps frames, e.g. `{ body: "..." }` or `{ data: ... }`.
|
|
60
|
-
* - return `undefined` to ignore a non-transport message.
|
|
61
|
-
*/
|
|
62
|
-
extractPacket?: (message: string) => string | undefined;
|
|
63
|
-
}
|
|
64
|
-
/** JSONTransport-backed receiver used by `HttpAbstractGenAI` transport mode */
|
|
65
|
-
export declare class JSONProxyTransportReceiver<T extends object = object> implements ProxyTransportReceiver<T> {
|
|
66
|
-
private readonly network;
|
|
67
|
-
private readonly options;
|
|
68
|
-
private readonly transport;
|
|
69
|
-
private pending?;
|
|
70
|
-
constructor(network: NetworkSupportable, options?: ProxyTransportReceiverOptions<T>);
|
|
71
|
-
/**
|
|
72
|
-
* Run an HTTP trigger task and resolve with the next complete JSONTransport payload.
|
|
73
|
-
*
|
|
74
|
-
* Only one pending wait is supported per receiver instance.
|
|
75
|
-
*/
|
|
76
|
-
wait(transportId: string, task: () => Promise<unknown>): Promise<T>;
|
|
77
|
-
/** detach listeners and reject an in-flight wait */
|
|
78
|
-
detach(): void;
|
|
79
|
-
private resolve;
|
|
80
|
-
private reject;
|
|
81
|
-
}
|
|
82
|
-
/** create a receiver that filters raw network packets down to JSONTransport frames */
|
|
83
|
-
export declare const createProxyTransportReceiver: <T extends object = object>(network: NetworkSupportable, options?: ProxyTransportReceiverOptions<T>) => JSONProxyTransportReceiver<T>;
|
|
84
|
-
/** extract a connection id from known API Gateway/WebSocket handshake response shapes */
|
|
85
|
-
export declare const extractWebSocketConnectionId: (message: unknown) => string | undefined;
|
|
86
|
-
/**
|
|
87
|
-
* Wait until a WebSocket is open, send the handshake message, and resolve the
|
|
88
|
-
* first connection id found in inbound messages.
|
|
89
|
-
*/
|
|
90
|
-
export declare const waitWebSocketConnectionId: (ws: WebSocketCompatible, options?: WebSocketConnectionIdOptions) => Promise<string>;
|
|
91
|
-
/**
|
|
92
|
-
* Adapter from browser-like WebSocket objects to `NetworkSupportable`.
|
|
93
|
-
*
|
|
94
|
-
* The adapter does not own externally supplied WebSocket instances. `close()` is
|
|
95
|
-
* intentionally equivalent to `detach()`; callers that created the WebSocket should
|
|
96
|
-
* close it themselves when they want the underlying connection closed.
|
|
97
|
-
*/
|
|
98
|
-
export declare class BrowserWebSocketNetwork implements NetworkSupportable {
|
|
99
|
-
private readonly ws;
|
|
100
|
-
private readonly messageHandlers;
|
|
101
|
-
private readonly errorHandlers;
|
|
102
|
-
private readonly opened;
|
|
103
|
-
private readyOpenHandler?;
|
|
104
|
-
private readyErrorHandler?;
|
|
105
|
-
private detached;
|
|
106
|
-
private readonly handleOpen;
|
|
107
|
-
private readonly handleMessage;
|
|
108
|
-
private readonly handleError;
|
|
109
|
-
private readonly handleClose;
|
|
110
|
-
constructor(ws: WebSocketCompatible);
|
|
111
|
-
get readyState(): SocketReadyState;
|
|
112
|
-
ready(): Promise<void>;
|
|
113
|
-
send(data: string): void;
|
|
114
|
-
onMessage(handler: NetworkMessageHandler): SocketUnsubscribe;
|
|
115
|
-
configure(_options: SocketNetworkOptions): void;
|
|
116
|
-
onError(handler: SocketErrorHandler): SocketUnsubscribe;
|
|
117
|
-
close(): void;
|
|
118
|
-
/** remove all listeners without closing the externally owned WebSocket */
|
|
119
|
-
detach(): void;
|
|
120
|
-
private isOpen;
|
|
121
|
-
private stateValue;
|
|
122
|
-
private detachReadyListeners;
|
|
123
|
-
}
|
package/dist/proxy/transport.js
DELETED
|
@@ -1,401 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.BrowserWebSocketNetwork = exports.waitWebSocketConnectionId = exports.extractWebSocketConnectionId = exports.createProxyTransportReceiver = exports.JSONProxyTransportReceiver = void 0;
|
|
13
|
-
/**
|
|
14
|
-
* `proxy/transport.ts`
|
|
15
|
-
* - browser/WebSocket helpers for receiving proxy generate results over JSONTransport.
|
|
16
|
-
* - depends on a minimal `WebSocketCompatible` contract, not the DOM `WebSocket` type,
|
|
17
|
-
* so it stays usable in browsers, Node, and custom UI runtimes.
|
|
18
|
-
*
|
|
19
|
-
* @author Claire <claude@lemoncloud.io>
|
|
20
|
-
* @date 2026-06-08 initial version
|
|
21
|
-
*
|
|
22
|
-
* @copyright (C) lemoncloud.io 2026 - All Rights Reserved.
|
|
23
|
-
*/
|
|
24
|
-
const transport_1 = require("../socket/transport");
|
|
25
|
-
/** JSONTransport-backed receiver used by `HttpAbstractGenAI` transport mode */
|
|
26
|
-
class JSONProxyTransportReceiver {
|
|
27
|
-
constructor(network, options = {}) {
|
|
28
|
-
this.network = network;
|
|
29
|
-
this.options = options;
|
|
30
|
-
this.transport = (0, transport_1.createJSONTransport)(new TransportPacketNetwork(network, options.extractPacket), options.jsonTransport);
|
|
31
|
-
this.transport.onMessage(data => this.resolve(data));
|
|
32
|
-
this.transport.onError(error => this.reject(error));
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Run an HTTP trigger task and resolve with the next complete JSONTransport payload.
|
|
36
|
-
*
|
|
37
|
-
* Only one pending wait is supported per receiver instance.
|
|
38
|
-
*/
|
|
39
|
-
wait(transportId, task) {
|
|
40
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
-
if (this.pending)
|
|
42
|
-
throw new Error(`@transport is already waiting - proxy.transport(${transportId})`);
|
|
43
|
-
if (!transportId)
|
|
44
|
-
throw new Error(`@transportId (string) is required - proxy.transport`);
|
|
45
|
-
const promise = new Promise((resolve, reject) => {
|
|
46
|
-
var _a;
|
|
47
|
-
const timeoutMs = (_a = this.options.timeoutMs) !== null && _a !== void 0 ? _a : 30000;
|
|
48
|
-
const timer = timeoutMs > 0
|
|
49
|
-
? setTimeout(() => {
|
|
50
|
-
this.reject(new Error(`@transport[${transportId}] timeout - proxy.transport`));
|
|
51
|
-
}, timeoutMs)
|
|
52
|
-
: undefined;
|
|
53
|
-
this.pending = { transportId, resolve, reject, timer };
|
|
54
|
-
});
|
|
55
|
-
try {
|
|
56
|
-
yield task();
|
|
57
|
-
}
|
|
58
|
-
catch (e) {
|
|
59
|
-
this.reject(e);
|
|
60
|
-
}
|
|
61
|
-
return promise;
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
/** detach listeners and reject an in-flight wait */
|
|
65
|
-
detach() {
|
|
66
|
-
this.reject(new Error(`@transport detached - proxy.transport`));
|
|
67
|
-
this.transport.detach();
|
|
68
|
-
}
|
|
69
|
-
resolve(data) {
|
|
70
|
-
if (!this.pending)
|
|
71
|
-
return;
|
|
72
|
-
if (this.options.validate && !this.options.validate(data))
|
|
73
|
-
return;
|
|
74
|
-
const pending = this.pending;
|
|
75
|
-
this.pending = undefined;
|
|
76
|
-
if (pending.timer)
|
|
77
|
-
clearTimeout(pending.timer);
|
|
78
|
-
pending.resolve(data);
|
|
79
|
-
}
|
|
80
|
-
reject(error) {
|
|
81
|
-
if (!this.pending)
|
|
82
|
-
return;
|
|
83
|
-
const pending = this.pending;
|
|
84
|
-
this.pending = undefined;
|
|
85
|
-
if (pending.timer)
|
|
86
|
-
clearTimeout(pending.timer);
|
|
87
|
-
pending.reject(error);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
exports.JSONProxyTransportReceiver = JSONProxyTransportReceiver;
|
|
91
|
-
/** create a receiver that filters raw network packets down to JSONTransport frames */
|
|
92
|
-
const createProxyTransportReceiver = (network, options) => new JSONProxyTransportReceiver(network, options);
|
|
93
|
-
exports.createProxyTransportReceiver = createProxyTransportReceiver;
|
|
94
|
-
/** extract a connection id from known API Gateway/WebSocket handshake response shapes */
|
|
95
|
-
const extractWebSocketConnectionId = (message) => {
|
|
96
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
97
|
-
if (!message || typeof message !== 'object')
|
|
98
|
-
return undefined;
|
|
99
|
-
const data = message;
|
|
100
|
-
const candidates = [
|
|
101
|
-
data.connectionId,
|
|
102
|
-
data.connId,
|
|
103
|
-
(_a = data.data) === null || _a === void 0 ? void 0 : _a.connectionId,
|
|
104
|
-
(_b = data.data) === null || _b === void 0 ? void 0 : _b.connId,
|
|
105
|
-
(_d = (_c = data.data) === null || _c === void 0 ? void 0 : _c.connId) === null || _d === void 0 ? void 0 : _d.id,
|
|
106
|
-
(_e = data.data) === null || _e === void 0 ? void 0 : _e.id,
|
|
107
|
-
(_f = data.body) === null || _f === void 0 ? void 0 : _f.connectionId,
|
|
108
|
-
(_g = data.body) === null || _g === void 0 ? void 0 : _g.connId,
|
|
109
|
-
(_h = data.body) === null || _h === void 0 ? void 0 : _h.id,
|
|
110
|
-
data.id,
|
|
111
|
-
];
|
|
112
|
-
return candidates.find(value => typeof value === 'string' && value.length > 0);
|
|
113
|
-
};
|
|
114
|
-
exports.extractWebSocketConnectionId = extractWebSocketConnectionId;
|
|
115
|
-
/**
|
|
116
|
-
* Wait until a WebSocket is open, send the handshake message, and resolve the
|
|
117
|
-
* first connection id found in inbound messages.
|
|
118
|
-
*/
|
|
119
|
-
const waitWebSocketConnectionId = (ws, options = {}) => __awaiter(void 0, void 0, void 0, function* () {
|
|
120
|
-
var _a, _b;
|
|
121
|
-
const timeoutMs = (_a = options.timeoutMs) !== null && _a !== void 0 ? _a : 15000;
|
|
122
|
-
const extract = (_b = options.extract) !== null && _b !== void 0 ? _b : exports.extractWebSocketConnectionId;
|
|
123
|
-
yield waitWebSocketOpen(ws, timeoutMs);
|
|
124
|
-
return new Promise((resolve, reject) => {
|
|
125
|
-
let settled = false;
|
|
126
|
-
const timer = timeoutMs > 0
|
|
127
|
-
? setTimeout(() => {
|
|
128
|
-
rejectOnce(new Error(`timeout waiting for connectionId from WebSocket: ${timeoutMs}ms`));
|
|
129
|
-
}, timeoutMs)
|
|
130
|
-
: undefined;
|
|
131
|
-
const cleanup = () => {
|
|
132
|
-
if (timer)
|
|
133
|
-
clearTimeout(timer);
|
|
134
|
-
ws.removeEventListener('message', onMessage);
|
|
135
|
-
ws.removeEventListener('error', onError);
|
|
136
|
-
ws.removeEventListener('close', onClose);
|
|
137
|
-
};
|
|
138
|
-
const resolveOnce = (connectionId) => {
|
|
139
|
-
if (settled)
|
|
140
|
-
return;
|
|
141
|
-
settled = true;
|
|
142
|
-
cleanup();
|
|
143
|
-
resolve(connectionId);
|
|
144
|
-
};
|
|
145
|
-
const rejectOnce = (error) => {
|
|
146
|
-
if (settled)
|
|
147
|
-
return;
|
|
148
|
-
settled = true;
|
|
149
|
-
cleanup();
|
|
150
|
-
reject(error);
|
|
151
|
-
};
|
|
152
|
-
const onMessage = (event) => __awaiter(void 0, void 0, void 0, function* () {
|
|
153
|
-
try {
|
|
154
|
-
const raw = yield asWebSocketText(event.data);
|
|
155
|
-
const json = tryParseWebSocketJSON(raw);
|
|
156
|
-
const connectionId = extract(json !== null && json !== void 0 ? json : raw);
|
|
157
|
-
if (connectionId)
|
|
158
|
-
resolveOnce(connectionId);
|
|
159
|
-
}
|
|
160
|
-
catch (e) {
|
|
161
|
-
rejectOnce(e);
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
const onError = (event) => rejectOnce(event);
|
|
165
|
-
const onClose = () => rejectOnce(new Error(`WebSocket closed before connectionId was received`));
|
|
166
|
-
ws.addEventListener('message', onMessage);
|
|
167
|
-
ws.addEventListener('error', onError, { once: true });
|
|
168
|
-
ws.addEventListener('close', onClose, { once: true });
|
|
169
|
-
if (options.connectMessage)
|
|
170
|
-
ws.send(options.connectMessage);
|
|
171
|
-
});
|
|
172
|
-
});
|
|
173
|
-
exports.waitWebSocketConnectionId = waitWebSocketConnectionId;
|
|
174
|
-
/**
|
|
175
|
-
* Adapter from browser-like WebSocket objects to `NetworkSupportable`.
|
|
176
|
-
*
|
|
177
|
-
* The adapter does not own externally supplied WebSocket instances. `close()` is
|
|
178
|
-
* intentionally equivalent to `detach()`; callers that created the WebSocket should
|
|
179
|
-
* close it themselves when they want the underlying connection closed.
|
|
180
|
-
*/
|
|
181
|
-
class BrowserWebSocketNetwork {
|
|
182
|
-
constructor(ws) {
|
|
183
|
-
this.ws = ws;
|
|
184
|
-
this.messageHandlers = new Set();
|
|
185
|
-
this.errorHandlers = new Set();
|
|
186
|
-
this.detached = false;
|
|
187
|
-
this.handleOpen = () => undefined;
|
|
188
|
-
this.handleMessage = (event) => {
|
|
189
|
-
if (this.detached || typeof event.data !== 'string')
|
|
190
|
-
return;
|
|
191
|
-
for (const handler of [...this.messageHandlers])
|
|
192
|
-
handler(event.data);
|
|
193
|
-
};
|
|
194
|
-
this.handleError = (event) => {
|
|
195
|
-
if (this.detached)
|
|
196
|
-
return;
|
|
197
|
-
for (const handler of [...this.errorHandlers])
|
|
198
|
-
handler(event, { scope: 'browserWebSocket', network: this });
|
|
199
|
-
};
|
|
200
|
-
this.handleClose = (event) => {
|
|
201
|
-
if (this.detached)
|
|
202
|
-
return;
|
|
203
|
-
for (const handler of [...this.errorHandlers])
|
|
204
|
-
handler(event, { scope: 'browserWebSocket.close', network: this });
|
|
205
|
-
};
|
|
206
|
-
this.opened = this.isOpen()
|
|
207
|
-
? Promise.resolve()
|
|
208
|
-
: new Promise((resolve, reject) => {
|
|
209
|
-
const onOpen = () => {
|
|
210
|
-
this.detachReadyListeners();
|
|
211
|
-
resolve();
|
|
212
|
-
};
|
|
213
|
-
const onError = (event) => {
|
|
214
|
-
this.detachReadyListeners();
|
|
215
|
-
reject(event);
|
|
216
|
-
};
|
|
217
|
-
this.readyOpenHandler = onOpen;
|
|
218
|
-
this.readyErrorHandler = onError;
|
|
219
|
-
ws.addEventListener('open', onOpen, { once: true });
|
|
220
|
-
ws.addEventListener('error', onError, { once: true });
|
|
221
|
-
});
|
|
222
|
-
ws.addEventListener('open', this.handleOpen);
|
|
223
|
-
ws.addEventListener('message', this.handleMessage);
|
|
224
|
-
ws.addEventListener('error', this.handleError);
|
|
225
|
-
ws.addEventListener('close', this.handleClose);
|
|
226
|
-
}
|
|
227
|
-
get readyState() {
|
|
228
|
-
if (this.detached)
|
|
229
|
-
return 'closed';
|
|
230
|
-
if (this.isOpen())
|
|
231
|
-
return 'open';
|
|
232
|
-
if (this.ws.readyState === this.stateValue('CLOSING', 2))
|
|
233
|
-
return 'closing';
|
|
234
|
-
if (this.ws.readyState === this.stateValue('CLOSED', 3))
|
|
235
|
-
return 'closed';
|
|
236
|
-
return 'connecting';
|
|
237
|
-
}
|
|
238
|
-
ready() {
|
|
239
|
-
if (this.detached)
|
|
240
|
-
return Promise.reject(new Error(`@network connection error: closed - browserWebSocket.ready`));
|
|
241
|
-
return this.opened;
|
|
242
|
-
}
|
|
243
|
-
send(data) {
|
|
244
|
-
if (this.detached || !this.isOpen()) {
|
|
245
|
-
throw new Error(`@network connection error: ${this.readyState} - browserWebSocket.send`);
|
|
246
|
-
}
|
|
247
|
-
this.ws.send(data);
|
|
248
|
-
}
|
|
249
|
-
onMessage(handler) {
|
|
250
|
-
if (this.detached)
|
|
251
|
-
throw new Error(`@network connection error: closed - browserWebSocket.onMessage`);
|
|
252
|
-
this.messageHandlers.add(handler);
|
|
253
|
-
return () => this.messageHandlers.delete(handler);
|
|
254
|
-
}
|
|
255
|
-
configure(_options) {
|
|
256
|
-
// Browser WebSocket transport options are controlled by the browser/runtime.
|
|
257
|
-
}
|
|
258
|
-
onError(handler) {
|
|
259
|
-
this.errorHandlers.add(handler);
|
|
260
|
-
return () => this.errorHandlers.delete(handler);
|
|
261
|
-
}
|
|
262
|
-
close() {
|
|
263
|
-
this.detach();
|
|
264
|
-
}
|
|
265
|
-
/** remove all listeners without closing the externally owned WebSocket */
|
|
266
|
-
detach() {
|
|
267
|
-
if (this.detached)
|
|
268
|
-
return;
|
|
269
|
-
this.detached = true;
|
|
270
|
-
this.messageHandlers.clear();
|
|
271
|
-
this.errorHandlers.clear();
|
|
272
|
-
this.ws.removeEventListener('open', this.handleOpen);
|
|
273
|
-
this.ws.removeEventListener('message', this.handleMessage);
|
|
274
|
-
this.ws.removeEventListener('error', this.handleError);
|
|
275
|
-
this.ws.removeEventListener('close', this.handleClose);
|
|
276
|
-
this.detachReadyListeners();
|
|
277
|
-
}
|
|
278
|
-
isOpen() {
|
|
279
|
-
return this.ws.readyState === this.stateValue('OPEN', 1);
|
|
280
|
-
}
|
|
281
|
-
stateValue(key, fallback) {
|
|
282
|
-
return typeof this.ws[key] === 'number' ? this.ws[key] : fallback;
|
|
283
|
-
}
|
|
284
|
-
detachReadyListeners() {
|
|
285
|
-
if (this.readyOpenHandler)
|
|
286
|
-
this.ws.removeEventListener('open', this.readyOpenHandler);
|
|
287
|
-
if (this.readyErrorHandler)
|
|
288
|
-
this.ws.removeEventListener('error', this.readyErrorHandler);
|
|
289
|
-
this.readyOpenHandler = undefined;
|
|
290
|
-
this.readyErrorHandler = undefined;
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
exports.BrowserWebSocketNetwork = BrowserWebSocketNetwork;
|
|
294
|
-
const waitWebSocketOpen = (ws, timeoutMs) => {
|
|
295
|
-
if (ws.readyState === stateValue(ws, 'OPEN', 1))
|
|
296
|
-
return Promise.resolve();
|
|
297
|
-
return new Promise((resolve, reject) => {
|
|
298
|
-
let settled = false;
|
|
299
|
-
const timer = timeoutMs > 0
|
|
300
|
-
? setTimeout(() => rejectOnce(new Error(`timeout waiting for WebSocket open: ${timeoutMs}ms`)), timeoutMs)
|
|
301
|
-
: undefined;
|
|
302
|
-
const cleanup = () => {
|
|
303
|
-
if (timer)
|
|
304
|
-
clearTimeout(timer);
|
|
305
|
-
ws.removeEventListener('open', onOpen);
|
|
306
|
-
ws.removeEventListener('error', onError);
|
|
307
|
-
ws.removeEventListener('close', onClose);
|
|
308
|
-
};
|
|
309
|
-
const resolveOnce = () => {
|
|
310
|
-
if (settled)
|
|
311
|
-
return;
|
|
312
|
-
settled = true;
|
|
313
|
-
cleanup();
|
|
314
|
-
resolve();
|
|
315
|
-
};
|
|
316
|
-
const rejectOnce = (error) => {
|
|
317
|
-
if (settled)
|
|
318
|
-
return;
|
|
319
|
-
settled = true;
|
|
320
|
-
cleanup();
|
|
321
|
-
reject(error);
|
|
322
|
-
};
|
|
323
|
-
const onOpen = () => resolveOnce();
|
|
324
|
-
const onError = (event) => rejectOnce(event);
|
|
325
|
-
const onClose = () => rejectOnce(new Error(`WebSocket closed before open`));
|
|
326
|
-
ws.addEventListener('open', onOpen, { once: true });
|
|
327
|
-
ws.addEventListener('error', onError, { once: true });
|
|
328
|
-
ws.addEventListener('close', onClose, { once: true });
|
|
329
|
-
});
|
|
330
|
-
};
|
|
331
|
-
const stateValue = (ws, key, fallback) => (typeof ws[key] === 'number' ? ws[key] : fallback);
|
|
332
|
-
const asWebSocketText = (data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
333
|
-
if (typeof data === 'string')
|
|
334
|
-
return data;
|
|
335
|
-
if (data instanceof ArrayBuffer)
|
|
336
|
-
return new TextDecoder().decode(data);
|
|
337
|
-
if (ArrayBuffer.isView(data))
|
|
338
|
-
return new TextDecoder().decode(data);
|
|
339
|
-
const readable = data;
|
|
340
|
-
if (typeof (readable === null || readable === void 0 ? void 0 : readable.text) === 'function')
|
|
341
|
-
return readable.text();
|
|
342
|
-
if (typeof (readable === null || readable === void 0 ? void 0 : readable.arrayBuffer) === 'function')
|
|
343
|
-
return new TextDecoder().decode(yield readable.arrayBuffer());
|
|
344
|
-
return String(data);
|
|
345
|
-
});
|
|
346
|
-
const tryParseWebSocketJSON = (text) => {
|
|
347
|
-
try {
|
|
348
|
-
return JSON.parse(text);
|
|
349
|
-
}
|
|
350
|
-
catch (_a) {
|
|
351
|
-
return undefined;
|
|
352
|
-
}
|
|
353
|
-
};
|
|
354
|
-
/** network wrapper that lets JSONTransport see only transport packet strings */
|
|
355
|
-
class TransportPacketNetwork {
|
|
356
|
-
constructor(source, extractPacket) {
|
|
357
|
-
this.source = source;
|
|
358
|
-
this.extractPacket = extractPacket;
|
|
359
|
-
}
|
|
360
|
-
get readyState() {
|
|
361
|
-
return this.source.readyState;
|
|
362
|
-
}
|
|
363
|
-
ready() {
|
|
364
|
-
var _a, _b, _c;
|
|
365
|
-
return (_c = (_b = (_a = this.source).ready) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : Promise.resolve();
|
|
366
|
-
}
|
|
367
|
-
send(data) {
|
|
368
|
-
this.source.send(data);
|
|
369
|
-
}
|
|
370
|
-
onMessage(handler) {
|
|
371
|
-
return this.source.onMessage(data => {
|
|
372
|
-
const packet = this.extractPacket ? this.extractPacket(data) : data;
|
|
373
|
-
if (typeof packet !== 'string' || !isTransportPacketString(packet))
|
|
374
|
-
return;
|
|
375
|
-
handler(packet);
|
|
376
|
-
});
|
|
377
|
-
}
|
|
378
|
-
configure(options) {
|
|
379
|
-
var _a, _b;
|
|
380
|
-
(_b = (_a = this.source).configure) === null || _b === void 0 ? void 0 : _b.call(_a, options);
|
|
381
|
-
}
|
|
382
|
-
onError(handler) {
|
|
383
|
-
return this.source.onError(handler);
|
|
384
|
-
}
|
|
385
|
-
close() {
|
|
386
|
-
this.source.close();
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
const isTransportPacketString = (data) => {
|
|
390
|
-
try {
|
|
391
|
-
const packet = JSON.parse(data);
|
|
392
|
-
return ((packet === null || packet === void 0 ? void 0 : packet.type) === 'json:manifest' ||
|
|
393
|
-
(packet === null || packet === void 0 ? void 0 : packet.type) === 'json:chunk' ||
|
|
394
|
-
(packet === null || packet === void 0 ? void 0 : packet.type) === 'json:complete' ||
|
|
395
|
-
(packet === null || packet === void 0 ? void 0 : packet.type) === 'json:error');
|
|
396
|
-
}
|
|
397
|
-
catch (_a) {
|
|
398
|
-
return false;
|
|
399
|
-
}
|
|
400
|
-
};
|
|
401
|
-
//# sourceMappingURL=transport.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/proxy/transport.ts"],"names":[],"mappings":"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"}
|
package/dist/proxy/types.d.ts
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `proxy/types.ts`
|
|
3
|
-
* - runtime-neutral Gemini-compatible proxy surface types.
|
|
4
|
-
*
|
|
5
|
-
* @author Claire <claude@lemoncloud.io>
|
|
6
|
-
* @date 2026-06-08 initial version
|
|
7
|
-
*
|
|
8
|
-
* @copyright (C) lemoncloud.io 2026 - All Rights Reserved.
|
|
9
|
-
*/
|
|
10
|
-
/** inline binary payload in Gemini-compatible content parts */
|
|
11
|
-
export interface ProxyGenAIInlineData {
|
|
12
|
-
data: string;
|
|
13
|
-
mimeType?: string;
|
|
14
|
-
}
|
|
15
|
-
/** text or inline-data part for a Gemini-compatible content block */
|
|
16
|
-
export interface ProxyGenAIPart {
|
|
17
|
-
text?: string;
|
|
18
|
-
inlineData?: ProxyGenAIInlineData;
|
|
19
|
-
}
|
|
20
|
-
/** Gemini-compatible content block */
|
|
21
|
-
export interface ProxyGenAIContent {
|
|
22
|
-
role?: string;
|
|
23
|
-
parts: ProxyGenAIPart[];
|
|
24
|
-
}
|
|
25
|
-
/** accepted `contents` shapes for proxy generateContent calls */
|
|
26
|
-
export declare type ProxyGenAIContents = string | ProxyGenAIContent | ProxyGenAIContent[];
|
|
27
|
-
/** image generation config subset used by samples/proxy */
|
|
28
|
-
export interface ProxyGenAIImageConfig {
|
|
29
|
-
aspectRatio?: string;
|
|
30
|
-
imageSize?: string;
|
|
31
|
-
}
|
|
32
|
-
/** generation config subset supported by `HttpAbstractGenAI` */
|
|
33
|
-
export interface ProxyGenAIConfig {
|
|
34
|
-
systemInstruction?: string;
|
|
35
|
-
responseMimeType?: string;
|
|
36
|
-
responseSchema?: unknown;
|
|
37
|
-
responseModalities?: unknown[];
|
|
38
|
-
temperature?: number;
|
|
39
|
-
topP?: number;
|
|
40
|
-
imageConfig?: ProxyGenAIImageConfig;
|
|
41
|
-
}
|
|
42
|
-
/** Gemini-compatible generateContent params accepted by the proxy */
|
|
43
|
-
export interface ProxyGenAIGenerateContentParams {
|
|
44
|
-
model: string;
|
|
45
|
-
contents: ProxyGenAIContents;
|
|
46
|
-
config?: ProxyGenAIConfig;
|
|
47
|
-
}
|
|
48
|
-
/** Gemini-compatible candidate response */
|
|
49
|
-
export interface ProxyGenAICandidate {
|
|
50
|
-
content: {
|
|
51
|
-
parts: ProxyGenAIPart[];
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
/** Gemini-compatible token usage metadata */
|
|
55
|
-
export interface ProxyGenAIUsageMetadata {
|
|
56
|
-
promptTokenCount?: number;
|
|
57
|
-
thoughtsTokenCount?: number;
|
|
58
|
-
totalTokenCount?: number;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Gemini-compatible generateContent response returned by the proxy.
|
|
62
|
-
* - extra flows/agents record fields (`$run`, `usageId`, `model`, `cost`, ...) are
|
|
63
|
-
* preserved as additive passthroughs so callers can keep run/usage records.
|
|
64
|
-
*/
|
|
65
|
-
export interface ProxyGenAIGenerateContentResponse {
|
|
66
|
-
text?: string;
|
|
67
|
-
candidates?: ProxyGenAICandidate[];
|
|
68
|
-
usageMetadata?: ProxyGenAIUsageMetadata;
|
|
69
|
-
/** flows run record, preserved when present */
|
|
70
|
-
$run?: unknown;
|
|
71
|
-
/** usage record id, preserved when present */
|
|
72
|
-
usageId?: string;
|
|
73
|
-
/** resolved model name, preserved when present */
|
|
74
|
-
model?: string;
|
|
75
|
-
/** server-reported cost, preserved when present */
|
|
76
|
-
cost?: number;
|
|
77
|
-
/** allow additional flows fields to survive without breaking the typed surface */
|
|
78
|
-
[key: string]: unknown;
|
|
79
|
-
}
|
|
80
|
-
/** minimal GenAI interface implemented by `HttpAbstractGenAI` */
|
|
81
|
-
export interface ProxyGenAI {
|
|
82
|
-
models: {
|
|
83
|
-
generateContent(params: ProxyGenAIGenerateContentParams): Promise<ProxyGenAIGenerateContentResponse>;
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
/** transport receiver used when HTTP only triggers work and the result arrives elsewhere */
|
|
87
|
-
export interface ProxyTransportReceiver<T extends object = object> {
|
|
88
|
-
wait(transportId: string, task: () => Promise<unknown>): Promise<T>;
|
|
89
|
-
}
|
package/dist/proxy/types.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* `proxy/types.ts`
|
|
4
|
-
* - runtime-neutral Gemini-compatible proxy surface types.
|
|
5
|
-
*
|
|
6
|
-
* @author Claire <claude@lemoncloud.io>
|
|
7
|
-
* @date 2026-06-08 initial version
|
|
8
|
-
*
|
|
9
|
-
* @copyright (C) lemoncloud.io 2026 - All Rights Reserved.
|
|
10
|
-
*/
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
//# sourceMappingURL=types.js.map
|