@hebo-ai/gateway 0.8.0-rc0 → 0.8.0-rc2
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/config.d.ts +2 -0
- package/dist/config.js +111 -0
- package/dist/endpoints/chat-completions/converters.d.ts +43 -0
- package/dist/endpoints/chat-completions/converters.js +661 -0
- package/dist/endpoints/chat-completions/handler.d.ts +2 -0
- package/dist/endpoints/chat-completions/handler.js +149 -0
- package/dist/endpoints/chat-completions/index.d.ts +4 -0
- package/dist/endpoints/chat-completions/index.js +4 -0
- package/dist/endpoints/chat-completions/otel.d.ts +5 -0
- package/dist/endpoints/chat-completions/otel.js +173 -0
- package/dist/endpoints/chat-completions/schema.d.ts +1226 -0
- package/dist/endpoints/chat-completions/schema.js +308 -0
- package/dist/endpoints/conversations/converters.d.ts +8 -0
- package/dist/endpoints/conversations/converters.js +30 -0
- package/dist/endpoints/conversations/handler.d.ts +2 -0
- package/dist/endpoints/conversations/handler.js +276 -0
- package/dist/endpoints/conversations/index.d.ts +3 -0
- package/dist/endpoints/conversations/index.js +3 -0
- package/dist/endpoints/conversations/schema.d.ts +1649 -0
- package/dist/endpoints/conversations/schema.js +225 -0
- package/dist/endpoints/conversations/storage/dialects/greptime.d.ts +10 -0
- package/dist/endpoints/conversations/storage/dialects/greptime.js +73 -0
- package/dist/endpoints/conversations/storage/dialects/mysql.d.ts +12 -0
- package/dist/endpoints/conversations/storage/dialects/mysql.js +114 -0
- package/dist/endpoints/conversations/storage/dialects/postgres.d.ts +16 -0
- package/dist/endpoints/conversations/storage/dialects/postgres.js +176 -0
- package/dist/endpoints/conversations/storage/dialects/sqlite.d.ts +11 -0
- package/dist/endpoints/conversations/storage/dialects/sqlite.js +172 -0
- package/dist/endpoints/conversations/storage/dialects/types.d.ts +42 -0
- package/dist/endpoints/conversations/storage/dialects/types.js +0 -0
- package/dist/endpoints/conversations/storage/dialects/utils.d.ts +25 -0
- package/dist/endpoints/conversations/storage/dialects/utils.js +80 -0
- package/dist/endpoints/conversations/storage/memory.d.ts +25 -0
- package/dist/endpoints/conversations/storage/memory.js +200 -0
- package/dist/endpoints/conversations/storage/sql.d.ts +33 -0
- package/dist/endpoints/conversations/storage/sql.js +273 -0
- package/dist/endpoints/conversations/storage/types.d.ts +39 -0
- package/dist/endpoints/conversations/storage/types.js +0 -0
- package/dist/endpoints/embeddings/converters.d.ts +10 -0
- package/dist/endpoints/embeddings/converters.js +31 -0
- package/dist/endpoints/embeddings/handler.d.ts +2 -0
- package/dist/endpoints/embeddings/handler.js +104 -0
- package/dist/endpoints/embeddings/index.d.ts +4 -0
- package/dist/endpoints/embeddings/index.js +4 -0
- package/dist/endpoints/embeddings/otel.d.ts +5 -0
- package/dist/endpoints/embeddings/otel.js +29 -0
- package/dist/endpoints/embeddings/schema.d.ts +44 -0
- package/dist/endpoints/embeddings/schema.js +29 -0
- package/dist/endpoints/models/converters.d.ts +6 -0
- package/dist/endpoints/models/converters.js +42 -0
- package/dist/endpoints/models/handler.d.ts +2 -0
- package/dist/endpoints/models/handler.js +29 -0
- package/dist/endpoints/models/index.d.ts +3 -0
- package/dist/endpoints/models/index.js +3 -0
- package/dist/endpoints/models/schema.d.ts +42 -0
- package/dist/endpoints/models/schema.js +31 -0
- package/dist/errors/ai-sdk.d.ts +2 -0
- package/dist/errors/ai-sdk.js +52 -0
- package/dist/errors/gateway.d.ts +5 -0
- package/dist/errors/gateway.js +13 -0
- package/dist/errors/openai.d.ts +15 -0
- package/dist/errors/openai.js +40 -0
- package/dist/errors/utils.d.ts +22 -0
- package/dist/errors/utils.js +44 -0
- package/dist/gateway.d.ts +10 -0
- package/dist/gateway.js +42 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +14 -0
- package/dist/lifecycle.d.ts +3 -0
- package/dist/lifecycle.js +96 -0
- package/dist/logger/default.d.ts +4 -0
- package/dist/logger/default.js +81 -0
- package/dist/logger/index.d.ts +11 -0
- package/dist/logger/index.js +25 -0
- package/dist/middleware/common.d.ts +12 -0
- package/dist/middleware/common.js +146 -0
- package/dist/middleware/debug.d.ts +3 -0
- package/dist/middleware/debug.js +27 -0
- package/dist/middleware/matcher.d.ts +28 -0
- package/dist/middleware/matcher.js +118 -0
- package/dist/middleware/utils.d.ts +2 -0
- package/dist/middleware/utils.js +24 -0
- package/dist/models/amazon/index.d.ts +2 -0
- package/dist/models/amazon/index.js +2 -0
- package/dist/models/amazon/middleware.d.ts +3 -0
- package/dist/models/amazon/middleware.js +68 -0
- package/dist/models/amazon/presets.d.ts +345 -0
- package/dist/models/amazon/presets.js +80 -0
- package/dist/models/anthropic/index.d.ts +2 -0
- package/dist/models/anthropic/index.js +2 -0
- package/dist/models/anthropic/middleware.d.ts +5 -0
- package/dist/models/anthropic/middleware.js +127 -0
- package/dist/models/anthropic/presets.d.ts +711 -0
- package/dist/models/anthropic/presets.js +135 -0
- package/dist/models/catalog.d.ts +4 -0
- package/dist/models/catalog.js +8 -0
- package/dist/models/cohere/index.d.ts +2 -0
- package/dist/models/cohere/index.js +2 -0
- package/dist/models/cohere/middleware.d.ts +3 -0
- package/dist/models/cohere/middleware.js +62 -0
- package/dist/models/cohere/presets.d.ts +411 -0
- package/dist/models/cohere/presets.js +134 -0
- package/dist/models/google/index.d.ts +2 -0
- package/dist/models/google/index.js +2 -0
- package/dist/models/google/middleware.d.ts +8 -0
- package/dist/models/google/middleware.js +111 -0
- package/dist/models/google/presets.d.ts +403 -0
- package/dist/models/google/presets.js +88 -0
- package/dist/models/meta/index.d.ts +1 -0
- package/dist/models/meta/index.js +1 -0
- package/dist/models/meta/presets.d.ts +483 -0
- package/dist/models/meta/presets.js +95 -0
- package/dist/models/openai/index.d.ts +2 -0
- package/dist/models/openai/index.js +2 -0
- package/dist/models/openai/middleware.d.ts +4 -0
- package/dist/models/openai/middleware.js +88 -0
- package/dist/models/openai/presets.d.ts +959 -0
- package/dist/models/openai/presets.js +213 -0
- package/dist/models/types.d.ts +20 -0
- package/dist/models/types.js +85 -0
- package/dist/models/voyage/index.d.ts +2 -0
- package/dist/models/voyage/index.js +2 -0
- package/dist/models/voyage/middleware.d.ts +2 -0
- package/dist/models/voyage/middleware.js +19 -0
- package/dist/models/voyage/presets.d.ts +436 -0
- package/dist/models/voyage/presets.js +85 -0
- package/dist/providers/anthropic/canonical.d.ts +3 -0
- package/dist/providers/anthropic/canonical.js +9 -0
- package/dist/providers/anthropic/index.d.ts +1 -0
- package/dist/providers/anthropic/index.js +1 -0
- package/dist/providers/bedrock/canonical.d.ts +17 -0
- package/dist/providers/bedrock/canonical.js +61 -0
- package/dist/providers/bedrock/index.d.ts +2 -0
- package/dist/providers/bedrock/index.js +2 -0
- package/dist/providers/bedrock/middleware.d.ts +5 -0
- package/dist/providers/bedrock/middleware.js +137 -0
- package/dist/providers/cohere/canonical.d.ts +3 -0
- package/dist/providers/cohere/canonical.js +17 -0
- package/dist/providers/cohere/index.d.ts +1 -0
- package/dist/providers/cohere/index.js +1 -0
- package/dist/providers/groq/canonical.d.ts +3 -0
- package/dist/providers/groq/canonical.js +12 -0
- package/dist/providers/groq/index.d.ts +2 -0
- package/dist/providers/groq/index.js +2 -0
- package/dist/providers/groq/middleware.d.ts +2 -0
- package/dist/providers/groq/middleware.js +31 -0
- package/dist/providers/openai/canonical.d.ts +3 -0
- package/dist/providers/openai/canonical.js +8 -0
- package/dist/providers/openai/index.d.ts +1 -0
- package/dist/providers/openai/index.js +1 -0
- package/dist/providers/registry.d.ts +24 -0
- package/dist/providers/registry.js +103 -0
- package/dist/providers/types.d.ts +7 -0
- package/dist/providers/types.js +11 -0
- package/dist/providers/vertex/canonical.d.ts +3 -0
- package/dist/providers/vertex/canonical.js +8 -0
- package/dist/providers/vertex/index.d.ts +2 -0
- package/dist/providers/vertex/index.js +2 -0
- package/dist/providers/vertex/middleware.d.ts +2 -0
- package/dist/providers/vertex/middleware.js +47 -0
- package/dist/providers/voyage/canonical.d.ts +3 -0
- package/dist/providers/voyage/canonical.js +7 -0
- package/dist/providers/voyage/index.d.ts +1 -0
- package/dist/providers/voyage/index.js +1 -0
- package/dist/telemetry/ai-sdk.d.ts +2 -0
- package/dist/telemetry/ai-sdk.js +31 -0
- package/dist/telemetry/baggage.d.ts +1 -0
- package/dist/telemetry/baggage.js +24 -0
- package/dist/telemetry/fetch.d.ts +2 -0
- package/dist/telemetry/fetch.js +49 -0
- package/dist/telemetry/gen-ai.d.ts +6 -0
- package/dist/telemetry/gen-ai.js +78 -0
- package/dist/telemetry/http.d.ts +3 -0
- package/dist/telemetry/http.js +54 -0
- package/dist/telemetry/index.d.ts +1 -0
- package/dist/telemetry/index.js +1 -0
- package/dist/telemetry/memory.d.ts +2 -0
- package/dist/telemetry/memory.js +43 -0
- package/dist/telemetry/span.d.ts +13 -0
- package/dist/telemetry/span.js +60 -0
- package/dist/types.d.ts +204 -0
- package/dist/types.js +2 -0
- package/dist/utils/env.d.ts +2 -0
- package/dist/utils/env.js +7 -0
- package/dist/utils/headers.d.ts +4 -0
- package/dist/utils/headers.js +22 -0
- package/dist/utils/preset.d.ts +10 -0
- package/dist/utils/preset.js +42 -0
- package/dist/utils/request.d.ts +2 -0
- package/dist/utils/request.js +43 -0
- package/dist/utils/response.d.ts +6 -0
- package/dist/utils/response.js +55 -0
- package/dist/utils/stream.d.ts +9 -0
- package/dist/utils/stream.js +100 -0
- package/dist/utils/url.d.ts +4 -0
- package/dist/utils/url.js +21 -0
- package/package.json +5 -1
package/dist/config.d.ts
ADDED
package/dist/config.js
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { InMemoryStorage } from "./endpoints/conversations/storage/memory";
|
|
2
|
+
import { isLogger, logger, setLoggerInstance } from "./logger";
|
|
3
|
+
import { createDefaultLogger } from "./logger/default";
|
|
4
|
+
import { installAiSdkWarningLogger } from "./telemetry/ai-sdk";
|
|
5
|
+
import { DEFAULT_CHAT_TIMEOUT_MS, kParsed, } from "./types";
|
|
6
|
+
export const parseConfig = (config) => {
|
|
7
|
+
// If it has been parsed before, just return.
|
|
8
|
+
if (kParsed in config)
|
|
9
|
+
return config;
|
|
10
|
+
const providers = config.providers ?? {};
|
|
11
|
+
const parsedProviders = {};
|
|
12
|
+
const models = config.models ?? {};
|
|
13
|
+
const storage = config.storage ?? new InMemoryStorage();
|
|
14
|
+
// Set the global logger instance.
|
|
15
|
+
if (config.logger === undefined) {
|
|
16
|
+
setLoggerInstance(createDefaultLogger({}));
|
|
17
|
+
}
|
|
18
|
+
else if (config.logger !== null) {
|
|
19
|
+
setLoggerInstance(isLogger(config.logger) ? config.logger : createDefaultLogger(config.logger));
|
|
20
|
+
logger.info(isLogger(config.logger)
|
|
21
|
+
? `[logger] custom logger configured`
|
|
22
|
+
: `[logger] logger configured: level=${config.logger.level}`);
|
|
23
|
+
}
|
|
24
|
+
// Strip providers that are not configured.
|
|
25
|
+
for (const id in providers) {
|
|
26
|
+
const provider = providers[id];
|
|
27
|
+
if (provider === undefined) {
|
|
28
|
+
logger.warn(`[config] ${id} provider removed (undefined)`);
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
parsedProviders[id] = provider;
|
|
32
|
+
}
|
|
33
|
+
if (Object.keys(parsedProviders).length === 0) {
|
|
34
|
+
throw new Error("No providers configured (config.providers is empty)");
|
|
35
|
+
}
|
|
36
|
+
// Strip providers that are not configured from models.
|
|
37
|
+
const parsedModels = {};
|
|
38
|
+
const warnings = new Set();
|
|
39
|
+
for (const id in models) {
|
|
40
|
+
const model = models[id];
|
|
41
|
+
const kept = [];
|
|
42
|
+
for (const p of model.providers) {
|
|
43
|
+
if (p in parsedProviders)
|
|
44
|
+
kept.push(p);
|
|
45
|
+
else
|
|
46
|
+
warnings.add(p);
|
|
47
|
+
}
|
|
48
|
+
if (kept.length > 0)
|
|
49
|
+
parsedModels[id] = { ...model, providers: kept };
|
|
50
|
+
}
|
|
51
|
+
for (const warning of warnings) {
|
|
52
|
+
logger.warn(`[config] ${warning} provider removed (not configured)`);
|
|
53
|
+
}
|
|
54
|
+
if (Object.keys(parsedModels).length === 0) {
|
|
55
|
+
throw new Error("No models configured (config.models is empty)");
|
|
56
|
+
}
|
|
57
|
+
// Default for the telemetry settings.
|
|
58
|
+
const telemetryEnabled = config.telemetry?.enabled ?? false;
|
|
59
|
+
const telemetrySignals = telemetryEnabled
|
|
60
|
+
? {
|
|
61
|
+
http: config.telemetry?.signals?.http ?? "recommended",
|
|
62
|
+
gen_ai: config.telemetry?.signals?.gen_ai ?? "full",
|
|
63
|
+
hebo: config.telemetry?.signals?.hebo ?? "off",
|
|
64
|
+
}
|
|
65
|
+
: {
|
|
66
|
+
http: "off",
|
|
67
|
+
gen_ai: "off",
|
|
68
|
+
hebo: "off",
|
|
69
|
+
};
|
|
70
|
+
installAiSdkWarningLogger(telemetrySignals.gen_ai);
|
|
71
|
+
// Default timeouts
|
|
72
|
+
let normal;
|
|
73
|
+
let flex;
|
|
74
|
+
const t = config.timeouts;
|
|
75
|
+
if (t === null) {
|
|
76
|
+
normal = flex = undefined;
|
|
77
|
+
}
|
|
78
|
+
else if (typeof t === "number") {
|
|
79
|
+
normal = t;
|
|
80
|
+
flex = t * 3;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
if (t?.normal === null)
|
|
84
|
+
normal = undefined;
|
|
85
|
+
else if (t?.normal === undefined)
|
|
86
|
+
normal = DEFAULT_CHAT_TIMEOUT_MS;
|
|
87
|
+
else
|
|
88
|
+
normal = t.normal;
|
|
89
|
+
if (t?.flex === null)
|
|
90
|
+
flex = undefined;
|
|
91
|
+
else if (t?.flex === undefined)
|
|
92
|
+
flex = normal === undefined ? undefined : normal * 3;
|
|
93
|
+
else
|
|
94
|
+
flex = t.flex;
|
|
95
|
+
}
|
|
96
|
+
const parsedTimeouts = { normal, flex };
|
|
97
|
+
// Return parsed config.
|
|
98
|
+
return {
|
|
99
|
+
...config,
|
|
100
|
+
timeouts: parsedTimeouts,
|
|
101
|
+
telemetry: {
|
|
102
|
+
...config.telemetry,
|
|
103
|
+
enabled: telemetryEnabled,
|
|
104
|
+
signals: telemetrySignals,
|
|
105
|
+
},
|
|
106
|
+
providers: parsedProviders,
|
|
107
|
+
models: parsedModels,
|
|
108
|
+
storage,
|
|
109
|
+
[kParsed]: true,
|
|
110
|
+
};
|
|
111
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { SharedV3ProviderOptions, SharedV3ProviderMetadata } from "@ai-sdk/provider";
|
|
2
|
+
import type { GenerateTextResult, StreamTextResult, FinishReason, ToolChoice, ToolSet, ModelMessage, UserContent, LanguageModelUsage, TextStreamPart, ReasoningOutput, AssistantModelMessage, ToolModelMessage, UserModelMessage } from "ai";
|
|
3
|
+
import { Output } from "ai";
|
|
4
|
+
import type { ChatCompletionsToolCall, ChatCompletionsTool, ChatCompletionsToolChoice, ChatCompletionsStream, ChatCompletionsContentPart, ChatCompletionsMessage, ChatCompletionsUserMessage, ChatCompletionsAssistantMessage, ChatCompletionsToolMessage, ChatCompletionsFinishReason, ChatCompletionsUsage, ChatCompletionsInputs, ChatCompletions, ChatCompletionsChunk, ChatCompletionsReasoningDetail } from "./schema";
|
|
5
|
+
import type { SseErrorFrame, SseFrame } from "../../utils/stream";
|
|
6
|
+
export type TextCallOptions = {
|
|
7
|
+
messages: ModelMessage[];
|
|
8
|
+
tools?: ToolSet;
|
|
9
|
+
toolChoice?: ToolChoice<ToolSet>;
|
|
10
|
+
activeTools?: Array<keyof ToolSet>;
|
|
11
|
+
output?: Output.Output;
|
|
12
|
+
temperature?: number;
|
|
13
|
+
maxOutputTokens?: number;
|
|
14
|
+
frequencyPenalty?: number;
|
|
15
|
+
presencePenalty?: number;
|
|
16
|
+
seed?: number;
|
|
17
|
+
stopSequences?: string[];
|
|
18
|
+
topP?: number;
|
|
19
|
+
providerOptions: SharedV3ProviderOptions;
|
|
20
|
+
};
|
|
21
|
+
export declare function convertToTextCallOptions(params: ChatCompletionsInputs): TextCallOptions;
|
|
22
|
+
export declare function convertToModelMessages(messages: ChatCompletionsMessage[]): ModelMessage[];
|
|
23
|
+
export declare function fromChatCompletionsUserMessage(message: ChatCompletionsUserMessage): UserModelMessage;
|
|
24
|
+
export declare function fromChatCompletionsAssistantMessage(message: ChatCompletionsAssistantMessage): AssistantModelMessage;
|
|
25
|
+
export declare function fromChatCompletionsToolResultMessage(message: ChatCompletionsAssistantMessage, toolById: Map<string, ChatCompletionsToolMessage>): ToolModelMessage | undefined;
|
|
26
|
+
export declare function fromChatCompletionsContent(content: ChatCompletionsContentPart[]): UserContent;
|
|
27
|
+
export declare const convertToToolSet: (tools: ChatCompletionsTool[] | undefined) => ToolSet | undefined;
|
|
28
|
+
export declare const convertToToolChoiceOptions: (toolChoice: ChatCompletionsToolChoice | undefined) => {
|
|
29
|
+
toolChoice?: ToolChoice<ToolSet>;
|
|
30
|
+
activeTools?: Array<keyof ToolSet>;
|
|
31
|
+
};
|
|
32
|
+
export declare function toChatCompletions(result: GenerateTextResult<ToolSet, Output.Output>, model: string): ChatCompletions;
|
|
33
|
+
export declare function toChatCompletionsResponse(result: GenerateTextResult<ToolSet, Output.Output>, model: string, responseInit?: ResponseInit): Response;
|
|
34
|
+
export declare function toChatCompletionsStream(result: StreamTextResult<ToolSet, Output.Output>, model: string): ChatCompletionsStream;
|
|
35
|
+
export declare function toChatCompletionsStreamResponse(result: StreamTextResult<ToolSet, Output.Output>, model: string, responseInit?: ResponseInit): Response;
|
|
36
|
+
export declare class ChatCompletionsTransformStream extends TransformStream<TextStreamPart<ToolSet>, SseFrame<ChatCompletionsChunk> | SseErrorFrame> {
|
|
37
|
+
constructor(model: string);
|
|
38
|
+
}
|
|
39
|
+
export declare const toChatCompletionsAssistantMessage: (result: GenerateTextResult<ToolSet, Output.Output>) => ChatCompletionsAssistantMessage;
|
|
40
|
+
export declare function toReasoningDetail(reasoning: ReasoningOutput, id: string, index: number): ChatCompletionsReasoningDetail;
|
|
41
|
+
export declare function toChatCompletionsUsage(usage: LanguageModelUsage): ChatCompletionsUsage;
|
|
42
|
+
export declare function toChatCompletionsToolCall(id: string, name: string, args: unknown, providerMetadata?: SharedV3ProviderMetadata): ChatCompletionsToolCall;
|
|
43
|
+
export declare const toChatCompletionsFinishReason: (finishReason: FinishReason) => ChatCompletionsFinishReason;
|