veryfront 0.1.860 → 0.1.861
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/esm/deno.js +1 -1
- package/esm/src/proxy/main.js +7 -2
- package/esm/src/proxy/websocket-bridge.d.ts +6 -0
- package/esm/src/proxy/websocket-bridge.d.ts.map +1 -0
- package/esm/src/proxy/websocket-bridge.js +18 -0
- package/esm/src/runtime/runtime-bridge.d.ts.map +1 -1
- package/esm/src/runtime/runtime-bridge.js +9 -2
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +1 -1
package/esm/deno.js
CHANGED
package/esm/src/proxy/main.js
CHANGED
|
@@ -23,6 +23,7 @@ import * as dntShim from "../../_dnt.shims.js";
|
|
|
23
23
|
import { createProxyHandler, INTERNAL_PROXY_HEADERS } from "./handler.js";
|
|
24
24
|
import { createCacheFromEnv } from "./cache/index.js";
|
|
25
25
|
import { isRetryableConnectionError } from "./retry.js";
|
|
26
|
+
import { closeBridgePeer, getServerWebSocketErrorLogLevel } from "./websocket-bridge.js";
|
|
26
27
|
import { register } from "../extensions/contracts.js";
|
|
27
28
|
import { createAuthProvider } from "../../extensions/ext-auth-jwt/src/index.js";
|
|
28
29
|
import { endSpan, extractContext, initializeOTLPWithApis, injectContext, ProxySpanNames, shutdownOTLP, startServerSpan, withContext, withSpan, } from "./tracing.js";
|
|
@@ -188,12 +189,16 @@ function handleWebSocketUpgrade(req, url) {
|
|
|
188
189
|
};
|
|
189
190
|
serverSocket.onerror = (event) => {
|
|
190
191
|
clearConnectTimeout();
|
|
191
|
-
|
|
192
|
+
const error = event instanceof ErrorEvent ? event.message : "Unknown error";
|
|
193
|
+
const logLevel = getServerWebSocketErrorLogLevel(error);
|
|
194
|
+
proxyLogger[logLevel]("[WebSocket] Server connection error", {
|
|
192
195
|
projectSlug,
|
|
193
196
|
environment: scope,
|
|
194
197
|
targetUrl: targetUrl.toString(),
|
|
195
|
-
error
|
|
198
|
+
error,
|
|
196
199
|
});
|
|
200
|
+
closeBridgePeer(clientSocket, 1011, "Server connection error");
|
|
201
|
+
closeBridgePeer(serverSocket, 1011, "Server connection error");
|
|
197
202
|
};
|
|
198
203
|
serverSocket.onclose = (event) => {
|
|
199
204
|
clearConnectTimeout();
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
type BridgePeer = Pick<WebSocket, "close" | "readyState">;
|
|
2
|
+
export type ServerWebSocketErrorLogLevel = "warn" | "error";
|
|
3
|
+
export declare function getServerWebSocketErrorLogLevel(message: string): ServerWebSocketErrorLogLevel;
|
|
4
|
+
export declare function closeBridgePeer(peer: BridgePeer | null, code: number, reason: string): void;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=websocket-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket-bridge.d.ts","sourceRoot":"","sources":["../../../src/src/proxy/websocket-bridge.ts"],"names":[],"mappings":"AAAA,KAAK,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,YAAY,CAAC,CAAC;AAE1D,MAAM,MAAM,4BAA4B,GAAG,MAAM,GAAG,OAAO,CAAC;AAS5D,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,MAAM,GAAG,4BAA4B,CAI7F;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAI3F"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const TRANSIENT_SERVER_ERROR_PATTERNS = [
|
|
2
|
+
/unexpected eof/i,
|
|
3
|
+
/connection reset/i,
|
|
4
|
+
/connection closed/i,
|
|
5
|
+
/socket closed/i,
|
|
6
|
+
];
|
|
7
|
+
export function getServerWebSocketErrorLogLevel(message) {
|
|
8
|
+
return TRANSIENT_SERVER_ERROR_PATTERNS.some((pattern) => pattern.test(message))
|
|
9
|
+
? "warn"
|
|
10
|
+
: "error";
|
|
11
|
+
}
|
|
12
|
+
export function closeBridgePeer(peer, code, reason) {
|
|
13
|
+
if (!peer)
|
|
14
|
+
return;
|
|
15
|
+
if (peer.readyState !== WebSocket.OPEN && peer.readyState !== WebSocket.CONNECTING)
|
|
16
|
+
return;
|
|
17
|
+
peer.close(code, reason);
|
|
18
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-bridge.d.ts","sourceRoot":"","sources":["../../../src/src/runtime/runtime-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2DAA2D,CAAC;AAC9G,OAAO,KAAK,EACV,yBAAyB,EACzB,mBAAmB,EACnB,6BAA6B,EAC7B,cAAc,EACf,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EAEb,MAAM,sBAAsB,CAAC;AAE9B,KAAK,mBAAmB,GAAG;IACzB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,4BAA4B,EAAE,CAAC;IACzC,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,2BAA2B,CAAC,EAAE,6BAA6B,CAAC;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,4BAA4B,EAAE,CAAC;IACzC,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,2BAA2B,CAAC,EAAE,6BAA6B,CAAC;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,gBAAgB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-bridge.d.ts","sourceRoot":"","sources":["../../../src/src/runtime/runtime-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2DAA2D,CAAC;AAC9G,OAAO,KAAK,EACV,yBAAyB,EACzB,mBAAmB,EACnB,6BAA6B,EAC7B,cAAc,EACf,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EAEb,MAAM,sBAAsB,CAAC;AAE9B,KAAK,mBAAmB,GAAG;IACzB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,4BAA4B,EAAE,CAAC;IACzC,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,2BAA2B,CAAC,EAAE,6BAA6B,CAAC;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,4BAA4B,EAAE,CAAC;IACzC,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,2BAA2B,CAAC,EAAE,6BAA6B,CAAC;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,gBAAgB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAmfF,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,WAAW,CAAC,yBAAyB,CAAC,CA0BjG;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,mBAAmB,CAyC1E;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,YAAY;;;;;;;;GAW1C;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB;;;;;;;GAUlD;AACD,6DAA6D;AAC7D,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAsBjE"}
|
|
@@ -16,6 +16,13 @@ function normalizeSystemPrompt(system) {
|
|
|
16
16
|
}
|
|
17
17
|
return undefined;
|
|
18
18
|
}
|
|
19
|
+
function getProviderRequestMessages(messages) {
|
|
20
|
+
const requestMessages = [...messages];
|
|
21
|
+
while (requestMessages.at(-1)?.role === "assistant") {
|
|
22
|
+
requestMessages.pop();
|
|
23
|
+
}
|
|
24
|
+
return requestMessages;
|
|
25
|
+
}
|
|
19
26
|
function toRuntimePrompt(system, messages) {
|
|
20
27
|
const prompt = [];
|
|
21
28
|
if (system && system.length > 0) {
|
|
@@ -315,7 +322,7 @@ async function* textDeltasFromStream(stream) {
|
|
|
315
322
|
}
|
|
316
323
|
export function generateText(options) {
|
|
317
324
|
return resolveDirectTools(options.tools).then((tools) => options.model.doGenerate({
|
|
318
|
-
prompt: toRuntimePrompt(normalizeSystemPrompt(options.system), options.messages),
|
|
325
|
+
prompt: toRuntimePrompt(normalizeSystemPrompt(options.system), getProviderRequestMessages(options.messages)),
|
|
319
326
|
maxOutputTokens: options.maxOutputTokens,
|
|
320
327
|
...(options.temperature === undefined ? {} : { temperature: options.temperature }),
|
|
321
328
|
topP: options.topP,
|
|
@@ -337,7 +344,7 @@ export function generateText(options) {
|
|
|
337
344
|
}
|
|
338
345
|
export function streamText(options) {
|
|
339
346
|
const directResultPromise = resolveDirectTools(options.tools).then((tools) => options.model.doStream({
|
|
340
|
-
prompt: toRuntimePrompt(normalizeSystemPrompt(options.system), options.messages),
|
|
347
|
+
prompt: toRuntimePrompt(normalizeSystemPrompt(options.system), getProviderRequestMessages(options.messages)),
|
|
341
348
|
maxOutputTokens: options.maxOutputTokens,
|
|
342
349
|
...(options.temperature === undefined ? {} : { temperature: options.temperature }),
|
|
343
350
|
topP: options.topP,
|