@hebo-ai/gateway 0.10.7 → 0.11.1
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/README.md +97 -84
- package/dist/config.js +21 -4
- package/dist/endpoints/chat-completions/converters.js +6 -2
- package/dist/endpoints/chat-completions/handler.js +9 -5
- package/dist/endpoints/chat-completions/schema.d.ts +48 -4
- package/dist/endpoints/chat-completions/schema.js +1 -1
- package/dist/endpoints/conversations/handler.js +3 -3
- package/dist/endpoints/embeddings/handler.js +2 -2
- package/dist/endpoints/messages/converters.js +17 -21
- package/dist/endpoints/messages/handler.js +5 -5
- package/dist/endpoints/responses/handler.js +9 -5
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/models/alibaba/index.d.ts +2 -0
- package/dist/models/alibaba/index.js +2 -0
- package/dist/models/alibaba/middleware.d.ts +2 -0
- package/dist/models/alibaba/middleware.js +31 -0
- package/dist/models/alibaba/presets.d.ts +956 -0
- package/dist/models/alibaba/presets.js +264 -0
- package/dist/models/amazon/presets.d.ts +31 -31
- package/dist/models/anthropic/middleware.js +0 -1
- package/dist/models/anthropic/presets.d.ts +68 -68
- package/dist/models/cohere/presets.d.ts +38 -38
- package/dist/models/deepseek/index.d.ts +2 -0
- package/dist/models/deepseek/index.js +2 -0
- package/dist/models/deepseek/middleware.d.ts +2 -0
- package/dist/models/deepseek/middleware.js +25 -0
- package/dist/models/deepseek/presets.d.ts +51 -0
- package/dist/models/deepseek/presets.js +33 -0
- package/dist/models/google/presets.d.ts +106 -106
- package/dist/models/google/presets.js +11 -5
- package/dist/models/meta/presets.d.ts +84 -84
- package/dist/models/meta/presets.js +11 -12
- package/dist/models/minimax/index.d.ts +2 -0
- package/dist/models/minimax/index.js +2 -0
- package/dist/models/minimax/middleware.d.ts +2 -0
- package/dist/models/minimax/middleware.js +43 -0
- package/dist/models/minimax/presets.d.ts +99 -0
- package/dist/models/minimax/presets.js +47 -0
- package/dist/models/moonshot/index.d.ts +2 -0
- package/dist/models/moonshot/index.js +2 -0
- package/dist/models/moonshot/middleware.d.ts +2 -0
- package/dist/models/moonshot/middleware.js +32 -0
- package/dist/models/moonshot/presets.d.ts +104 -0
- package/dist/models/moonshot/presets.js +36 -0
- package/dist/models/openai/presets.d.ts +128 -128
- package/dist/models/openai/presets.js +1 -1
- package/dist/models/types.d.ts +1 -1
- package/dist/models/types.js +41 -1
- package/dist/models/voyage/presets.d.ts +46 -46
- package/dist/models/xai/index.d.ts +2 -0
- package/dist/models/xai/index.js +2 -0
- package/dist/models/xai/middleware.d.ts +2 -0
- package/dist/models/xai/middleware.js +37 -0
- package/dist/models/xai/presets.d.ts +210 -0
- package/dist/models/xai/presets.js +55 -0
- package/dist/models/zai/index.d.ts +2 -0
- package/dist/models/zai/index.js +2 -0
- package/dist/models/zai/middleware.d.ts +2 -0
- package/dist/models/zai/middleware.js +25 -0
- package/dist/models/zai/presets.d.ts +141 -0
- package/dist/models/zai/presets.js +41 -0
- package/dist/providers/alibaba/canonical.d.ts +3 -0
- package/dist/providers/alibaba/canonical.js +13 -0
- package/dist/providers/alibaba/index.d.ts +1 -0
- package/dist/providers/alibaba/index.js +1 -0
- package/dist/providers/bedrock/canonical.js +3 -0
- package/dist/providers/chutes/canonical.d.ts +3 -0
- package/dist/providers/chutes/canonical.js +14 -0
- package/dist/providers/chutes/index.d.ts +1 -0
- package/dist/providers/chutes/index.js +1 -0
- package/dist/providers/deepinfra/canonical.d.ts +3 -0
- package/dist/providers/deepinfra/canonical.js +40 -0
- package/dist/providers/deepinfra/index.d.ts +1 -0
- package/dist/providers/deepinfra/index.js +1 -0
- package/dist/providers/deepseek/canonical.d.ts +3 -0
- package/dist/providers/deepseek/canonical.js +9 -0
- package/dist/providers/deepseek/index.d.ts +1 -0
- package/dist/providers/deepseek/index.js +1 -0
- package/dist/providers/fireworks/canonical.d.ts +3 -0
- package/dist/providers/fireworks/canonical.js +27 -0
- package/dist/providers/fireworks/index.d.ts +2 -0
- package/dist/providers/fireworks/index.js +2 -0
- package/dist/providers/fireworks/middleware.d.ts +2 -0
- package/dist/providers/fireworks/middleware.js +35 -0
- package/dist/providers/groq/canonical.js +1 -1
- package/dist/providers/minimax/canonical.d.ts +3 -0
- package/dist/providers/minimax/canonical.js +9 -0
- package/dist/providers/minimax/index.d.ts +1 -0
- package/dist/providers/minimax/index.js +1 -0
- package/dist/providers/moonshot/canonical.d.ts +3 -0
- package/dist/providers/moonshot/canonical.js +6 -0
- package/dist/providers/moonshot/index.d.ts +1 -0
- package/dist/providers/moonshot/index.js +1 -0
- package/dist/providers/togetherai/canonical.d.ts +3 -0
- package/dist/providers/togetherai/canonical.js +24 -0
- package/dist/providers/togetherai/index.d.ts +1 -0
- package/dist/providers/togetherai/index.js +1 -0
- package/dist/providers/types.d.ts +1 -1
- package/dist/providers/types.js +10 -0
- package/dist/providers/vertex/canonical.js +5 -1
- package/dist/providers/xai/canonical.d.ts +3 -0
- package/dist/providers/xai/canonical.js +12 -0
- package/dist/providers/xai/index.d.ts +1 -0
- package/dist/providers/xai/index.js +1 -0
- package/dist/providers/zai/canonical.d.ts +3 -0
- package/dist/providers/zai/canonical.js +10 -0
- package/dist/providers/zai/index.d.ts +1 -0
- package/dist/providers/zai/index.js +1 -0
- package/dist/types.d.ts +30 -16
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.js +8 -0
- package/dist/utils/request.d.ts +2 -1
- package/dist/utils/request.js +35 -7
- package/package.json +154 -30
|
@@ -23,7 +23,7 @@ export const responses = (config) => {
|
|
|
23
23
|
throw new GatewayError("Method Not Allowed", 405);
|
|
24
24
|
}
|
|
25
25
|
// Parse + validate input (handles Content-Encoding decompression + body size limits).
|
|
26
|
-
ctx.body = (await parseRequestBody(ctx.request, cfg.maxBodySize));
|
|
26
|
+
ctx.body = (await parseRequestBody(ctx.request, cfg.advanced.maxBodySize));
|
|
27
27
|
logger.trace({ requestId: ctx.requestId, body: ctx.body }, "[responses] ResponsesBody");
|
|
28
28
|
addSpanEvent("hebo.request.deserialized");
|
|
29
29
|
const parsed = ResponsesBodySchema.safeParse(ctx.body);
|
|
@@ -71,10 +71,12 @@ export const responses = (config) => {
|
|
|
71
71
|
let ttft = 0;
|
|
72
72
|
const result = streamText({
|
|
73
73
|
model: languageModelWithMiddleware,
|
|
74
|
-
headers: prepareForwardHeaders(ctx.request),
|
|
74
|
+
headers: prepareForwardHeaders(ctx.request, cfg.advanced.forwardHeaders),
|
|
75
75
|
abortSignal: ctx.request.signal,
|
|
76
76
|
timeout: {
|
|
77
|
-
totalMs: ctx.body.service_tier === "flex"
|
|
77
|
+
totalMs: ctx.body.service_tier === "flex"
|
|
78
|
+
? cfg.advanced.timeouts.flex
|
|
79
|
+
: cfg.advanced.timeouts.normal,
|
|
78
80
|
},
|
|
79
81
|
onAbort: () => {
|
|
80
82
|
throw new DOMException("The operation was aborted.", "AbortError");
|
|
@@ -112,9 +114,11 @@ export const responses = (config) => {
|
|
|
112
114
|
addSpanEvent("hebo.ai-sdk.started");
|
|
113
115
|
const result = await generateText({
|
|
114
116
|
model: languageModelWithMiddleware,
|
|
115
|
-
headers: prepareForwardHeaders(ctx.request),
|
|
117
|
+
headers: prepareForwardHeaders(ctx.request, cfg.advanced.forwardHeaders),
|
|
116
118
|
abortSignal: ctx.request.signal,
|
|
117
|
-
timeout: ctx.body.service_tier === "flex"
|
|
119
|
+
timeout: ctx.body.service_tier === "flex"
|
|
120
|
+
? cfg.advanced.timeouts.flex
|
|
121
|
+
: cfg.advanced.timeouts.normal,
|
|
118
122
|
experimental_include: {
|
|
119
123
|
requestBody: false,
|
|
120
124
|
responseBody: false,
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { modelMiddlewareMatcher } from "../../middleware/matcher";
|
|
2
|
+
import { calculateReasoningBudgetFromEffort } from "../../middleware/utils";
|
|
3
|
+
const QWEN_DEFAULT_MAX_OUTPUT_TOKENS = 16384;
|
|
4
|
+
export const qwenReasoningMiddleware = {
|
|
5
|
+
specificationVersion: "v3",
|
|
6
|
+
// oxlint-disable-next-line require-await
|
|
7
|
+
transformParams: async ({ params }) => {
|
|
8
|
+
const unknown = params.providerOptions?.["unknown"];
|
|
9
|
+
if (!unknown)
|
|
10
|
+
return params;
|
|
11
|
+
const reasoning = unknown["reasoning"];
|
|
12
|
+
if (!reasoning)
|
|
13
|
+
return params;
|
|
14
|
+
const target = (params.providerOptions["alibaba"] ??= {});
|
|
15
|
+
if (!reasoning.enabled || reasoning.effort === "none") {
|
|
16
|
+
target.enableThinking = false;
|
|
17
|
+
delete target.thinkingBudget;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
target.enableThinking = true;
|
|
21
|
+
target.thinkingBudget =
|
|
22
|
+
reasoning.max_tokens ??
|
|
23
|
+
calculateReasoningBudgetFromEffort(reasoning.effort ?? "medium", params.maxOutputTokens ?? QWEN_DEFAULT_MAX_OUTPUT_TOKENS);
|
|
24
|
+
}
|
|
25
|
+
delete unknown["reasoning"];
|
|
26
|
+
return params;
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
modelMiddlewareMatcher.useForModel("alibaba/qwen*", {
|
|
30
|
+
language: [qwenReasoningMiddleware],
|
|
31
|
+
});
|