@hebo-ai/gateway 0.1.2 → 0.2.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/README.md +172 -67
- package/dist/config.js +2 -12
- package/dist/endpoints/chat-completions/converters.d.ts +28 -24
- package/dist/endpoints/chat-completions/converters.js +99 -73
- package/dist/endpoints/chat-completions/handler.js +36 -30
- package/dist/endpoints/chat-completions/schema.d.ts +394 -272
- package/dist/endpoints/chat-completions/schema.js +124 -57
- package/dist/endpoints/embeddings/converters.d.ts +4 -4
- package/dist/endpoints/embeddings/converters.js +8 -9
- package/dist/endpoints/embeddings/handler.js +32 -26
- package/dist/endpoints/embeddings/schema.d.ts +28 -38
- package/dist/endpoints/embeddings/schema.js +10 -10
- package/dist/endpoints/models/converters.d.ts +2 -2
- package/dist/endpoints/models/converters.js +9 -12
- package/dist/endpoints/models/handler.js +8 -9
- package/dist/endpoints/models/schema.d.ts +37 -31
- package/dist/endpoints/models/schema.js +23 -12
- package/dist/gateway.d.ts +8 -9
- package/dist/gateway.js +7 -10
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/lifecycle.d.ts +2 -0
- package/dist/{utils/hooks.js → lifecycle.js} +16 -8
- package/dist/middleware/common.d.ts +4 -0
- package/dist/middleware/common.js +44 -0
- package/dist/middleware/matcher.d.ts +18 -0
- package/dist/middleware/matcher.js +83 -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 +2 -0
- package/dist/models/amazon/middleware.js +20 -0
- package/dist/models/amazon/presets.d.ts +2390 -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 +67 -0
- package/dist/models/anthropic/presets.d.ts +4106 -0
- package/dist/models/anthropic/presets.js +113 -0
- package/dist/models/catalog.d.ts +3 -1
- package/dist/models/catalog.js +3 -2
- package/dist/models/cohere/index.d.ts +2 -0
- package/dist/models/cohere/index.js +2 -0
- package/dist/models/cohere/middleware.d.ts +2 -0
- package/dist/models/cohere/middleware.js +18 -0
- package/dist/models/cohere/presets.d.ts +2918 -0
- package/dist/models/cohere/presets.js +129 -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 +2 -0
- package/dist/models/google/middleware.js +20 -0
- package/dist/models/{presets/gemini.d.ts → google/presets.d.ts} +400 -174
- package/dist/models/{presets/gemini.js → google/presets.js} +20 -5
- package/dist/models/meta/index.d.ts +1 -0
- package/dist/models/meta/index.js +1 -0
- package/dist/models/meta/presets.d.ts +3254 -0
- package/dist/models/{presets/llama.js → meta/presets.js} +44 -7
- package/dist/models/openai/index.d.ts +2 -0
- package/dist/models/openai/index.js +2 -0
- package/dist/models/openai/middleware.d.ts +2 -0
- package/dist/models/openai/middleware.js +20 -0
- package/dist/models/openai/presets.d.ts +6252 -0
- package/dist/models/openai/presets.js +206 -0
- package/dist/models/types.d.ts +3 -3
- package/dist/models/types.js +27 -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 +18 -0
- package/dist/models/{presets/voyage.d.ts → voyage/presets.d.ts} +322 -323
- 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 +15 -0
- package/dist/providers/{canonical/bedrock.js → bedrock/canonical.js} +13 -15
- package/dist/providers/bedrock/index.d.ts +1 -0
- package/dist/providers/bedrock/index.js +1 -0
- package/dist/providers/cohere/canonical.d.ts +3 -0
- package/dist/providers/{canonical/cohere.js → cohere/canonical.js} +6 -6
- 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 +1 -0
- package/dist/providers/groq/index.js +1 -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 +16 -26
- package/dist/providers/registry.js +19 -26
- package/dist/providers/types.d.ts +1 -1
- package/dist/providers/types.js +1 -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 +1 -0
- package/dist/providers/vertex/index.js +1 -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/types.d.ts +60 -30
- package/dist/utils/errors.js +2 -0
- package/dist/utils/preset.d.ts +1 -7
- package/dist/utils/preset.js +1 -1
- package/dist/utils/response.d.ts +1 -0
- package/dist/utils/response.js +10 -0
- package/package.json +79 -70
- package/src/config.ts +2 -18
- package/src/endpoints/chat-completions/converters.test.ts +39 -0
- package/src/endpoints/chat-completions/converters.ts +191 -112
- package/src/endpoints/chat-completions/handler.test.ts +47 -18
- package/src/endpoints/chat-completions/handler.ts +40 -34
- package/src/endpoints/chat-completions/schema.ts +161 -88
- package/src/endpoints/embeddings/converters.ts +15 -11
- package/src/endpoints/embeddings/handler.test.ts +27 -30
- package/src/endpoints/embeddings/handler.ts +34 -28
- package/src/endpoints/embeddings/schema.ts +10 -10
- package/src/endpoints/models/converters.ts +22 -14
- package/src/endpoints/models/handler.test.ts +26 -29
- package/src/endpoints/models/handler.ts +10 -12
- package/src/endpoints/models/schema.ts +26 -20
- package/src/gateway.ts +10 -24
- package/src/index.ts +3 -0
- package/src/{utils/hooks.ts → lifecycle.ts} +21 -11
- package/src/middleware/common.ts +68 -0
- package/src/middleware/matcher.ts +117 -0
- package/src/models/amazon/index.ts +2 -0
- package/src/models/amazon/middleware.ts +25 -0
- package/src/models/amazon/presets.ts +104 -0
- package/src/models/anthropic/index.ts +2 -0
- package/src/models/anthropic/middleware.test.ts +184 -0
- package/src/models/anthropic/middleware.ts +75 -0
- package/src/models/anthropic/presets.ts +161 -0
- package/src/models/catalog.ts +10 -2
- package/src/models/cohere/index.ts +2 -0
- package/src/models/cohere/middleware.ts +23 -0
- package/src/models/cohere/presets.ts +181 -0
- package/src/models/google/index.ts +2 -0
- package/src/models/google/middleware.ts +25 -0
- package/src/models/{presets/gemini.ts → google/presets.ts} +25 -5
- package/src/models/meta/index.ts +1 -0
- package/src/models/{presets/llama.ts → meta/presets.ts} +68 -7
- package/src/models/openai/index.ts +2 -0
- package/src/models/openai/middleware.ts +25 -0
- package/src/models/openai/presets.ts +269 -0
- package/src/models/types.ts +29 -2
- package/src/models/voyage/index.ts +2 -0
- package/src/models/voyage/middleware.ts +23 -0
- package/src/providers/anthropic/canonical.ts +17 -0
- package/src/providers/anthropic/index.ts +1 -0
- package/src/providers/{canonical/bedrock.ts → bedrock/canonical.ts} +22 -32
- package/src/providers/bedrock/index.ts +1 -0
- package/src/providers/cohere/canonical.ts +26 -0
- package/src/providers/cohere/index.ts +1 -0
- package/src/providers/groq/canonical.ts +21 -0
- package/src/providers/groq/index.ts +1 -0
- package/src/providers/openai/canonical.ts +16 -0
- package/src/providers/openai/index.ts +1 -0
- package/src/providers/registry.test.ts +12 -10
- package/src/providers/registry.ts +43 -43
- package/src/providers/types.ts +1 -0
- package/src/providers/vertex/canonical.ts +17 -0
- package/src/providers/vertex/index.ts +1 -0
- package/src/providers/voyage/canonical.ts +16 -0
- package/src/providers/voyage/index.ts +1 -0
- package/src/types.ts +64 -28
- package/src/utils/errors.ts +2 -0
- package/src/utils/preset.ts +2 -6
- package/src/utils/response.ts +15 -0
- package/dist/models/presets/claude.d.ts +0 -1165
- package/dist/models/presets/claude.js +0 -40
- package/dist/models/presets/cohere.d.ts +0 -383
- package/dist/models/presets/cohere.js +0 -26
- package/dist/models/presets/gpt-oss.d.ts +0 -779
- package/dist/models/presets/gpt-oss.js +0 -40
- package/dist/models/presets/llama.d.ts +0 -1400
- package/dist/providers/canonical/anthropic.d.ts +0 -25
- package/dist/providers/canonical/anthropic.js +0 -14
- package/dist/providers/canonical/bedrock.d.ts +0 -26
- package/dist/providers/canonical/cohere.d.ts +0 -17
- package/dist/providers/canonical/groq.d.ts +0 -17
- package/dist/providers/canonical/groq.js +0 -10
- package/dist/providers/canonical/openai.d.ts +0 -17
- package/dist/providers/canonical/openai.js +0 -8
- package/dist/providers/canonical/vertex.d.ts +0 -17
- package/dist/providers/canonical/vertex.js +0 -10
- package/dist/providers/canonical/voyage.d.ts +0 -17
- package/dist/providers/canonical/voyage.js +0 -8
- package/dist/utils/hooks.d.ts +0 -2
- package/src/models/presets/claude.ts +0 -59
- package/src/models/presets/cohere.ts +0 -37
- package/src/models/presets/gpt-oss.ts +0 -55
- package/src/providers/canonical/anthropic.ts +0 -32
- package/src/providers/canonical/cohere.ts +0 -36
- package/src/providers/canonical/groq.ts +0 -25
- package/src/providers/canonical/openai.ts +0 -16
- package/src/providers/canonical/vertex.ts +0 -18
- package/src/providers/canonical/voyage.ts +0 -16
- package/dist/models/{presets/voyage.js → voyage/presets.js} +10 -10
- package/src/models/{presets/voyage.ts → voyage/presets.ts} +10 -10
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { presetFor } from "../../utils/preset";
|
|
2
|
+
const CLAUDE_BASE = {
|
|
3
|
+
modalities: {
|
|
4
|
+
input: ["text", "image", "file"],
|
|
5
|
+
output: ["text"],
|
|
6
|
+
},
|
|
7
|
+
capabilities: ["attachments", "tool_call", "structured_output", "temperature"],
|
|
8
|
+
context: 200000,
|
|
9
|
+
providers: ["anthropic", "bedrock", "vertex"],
|
|
10
|
+
};
|
|
11
|
+
const CLAUDE_PDF_MODALITIES = {
|
|
12
|
+
modalities: {
|
|
13
|
+
input: ["text", "image", "pdf", "file"],
|
|
14
|
+
output: ["text"],
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
export const claudeHaiku45 = presetFor()("anthropic/claude-haiku-4.5", {
|
|
18
|
+
...CLAUDE_BASE,
|
|
19
|
+
...CLAUDE_PDF_MODALITIES,
|
|
20
|
+
name: "Claude Haiku 4.5",
|
|
21
|
+
capabilities: [...CLAUDE_BASE.capabilities, "reasoning"],
|
|
22
|
+
created: "2025-10-01",
|
|
23
|
+
knowledge: "2025-07",
|
|
24
|
+
});
|
|
25
|
+
export const claudeHaiku35 = presetFor()("anthropic/claude-haiku-3.5", {
|
|
26
|
+
...CLAUDE_BASE,
|
|
27
|
+
...CLAUDE_PDF_MODALITIES,
|
|
28
|
+
name: "Claude Haiku 3.5",
|
|
29
|
+
created: "2024-10-22",
|
|
30
|
+
knowledge: "2024-07",
|
|
31
|
+
});
|
|
32
|
+
export const claudeHaiku3 = presetFor()("anthropic/claude-haiku-3", {
|
|
33
|
+
...CLAUDE_BASE,
|
|
34
|
+
name: "Claude Haiku 3",
|
|
35
|
+
created: "2024-03-07",
|
|
36
|
+
knowledge: "2023-08",
|
|
37
|
+
});
|
|
38
|
+
export const claudeSonnet45 = presetFor()("anthropic/claude-sonnet-4.5", {
|
|
39
|
+
...CLAUDE_BASE,
|
|
40
|
+
...CLAUDE_PDF_MODALITIES,
|
|
41
|
+
name: "Claude Sonnet 4.5",
|
|
42
|
+
capabilities: [...CLAUDE_BASE.capabilities, "reasoning"],
|
|
43
|
+
created: "2025-09-29",
|
|
44
|
+
knowledge: "2025-07",
|
|
45
|
+
});
|
|
46
|
+
export const claudeSonnet4 = presetFor()("anthropic/claude-sonnet-4", {
|
|
47
|
+
...CLAUDE_BASE,
|
|
48
|
+
...CLAUDE_PDF_MODALITIES,
|
|
49
|
+
name: "Claude Sonnet 4",
|
|
50
|
+
capabilities: [...CLAUDE_BASE.capabilities, "reasoning"],
|
|
51
|
+
created: "2025-05-14",
|
|
52
|
+
knowledge: "2025-03",
|
|
53
|
+
});
|
|
54
|
+
export const claudeSonnet37 = presetFor()("anthropic/claude-sonnet-3.7", {
|
|
55
|
+
...CLAUDE_BASE,
|
|
56
|
+
...CLAUDE_PDF_MODALITIES,
|
|
57
|
+
name: "Claude Sonnet 3.7",
|
|
58
|
+
capabilities: [...CLAUDE_BASE.capabilities, "reasoning"],
|
|
59
|
+
created: "2025-02-19",
|
|
60
|
+
knowledge: "2024-10",
|
|
61
|
+
});
|
|
62
|
+
export const claudeSonnet35 = presetFor()("anthropic/claude-sonnet-3.5", {
|
|
63
|
+
...CLAUDE_BASE,
|
|
64
|
+
...CLAUDE_PDF_MODALITIES,
|
|
65
|
+
name: "Claude Sonnet 3.5",
|
|
66
|
+
created: "2024-10-22",
|
|
67
|
+
knowledge: "2024-04",
|
|
68
|
+
});
|
|
69
|
+
export const claudeOpus45 = presetFor()("anthropic/claude-opus-4.5", {
|
|
70
|
+
...CLAUDE_BASE,
|
|
71
|
+
...CLAUDE_PDF_MODALITIES,
|
|
72
|
+
name: "Claude Opus 4.5",
|
|
73
|
+
capabilities: [...CLAUDE_BASE.capabilities, "reasoning"],
|
|
74
|
+
created: "2025-11-01",
|
|
75
|
+
knowledge: "2025-08",
|
|
76
|
+
});
|
|
77
|
+
export const claudeOpus41 = presetFor()("anthropic/claude-opus-4.1", {
|
|
78
|
+
...CLAUDE_BASE,
|
|
79
|
+
...CLAUDE_PDF_MODALITIES,
|
|
80
|
+
name: "Claude Opus 4.1",
|
|
81
|
+
capabilities: [...CLAUDE_BASE.capabilities, "reasoning"],
|
|
82
|
+
created: "2025-08-05",
|
|
83
|
+
knowledge: "2025-03",
|
|
84
|
+
});
|
|
85
|
+
export const claudeOpus4 = presetFor()("anthropic/claude-opus-4", {
|
|
86
|
+
...CLAUDE_BASE,
|
|
87
|
+
...CLAUDE_PDF_MODALITIES,
|
|
88
|
+
name: "Claude Opus 4",
|
|
89
|
+
capabilities: [...CLAUDE_BASE.capabilities, "reasoning"],
|
|
90
|
+
created: "2025-05-14",
|
|
91
|
+
knowledge: "2025-03",
|
|
92
|
+
});
|
|
93
|
+
const claudeAtomic = {
|
|
94
|
+
"v4.5": [claudeHaiku45, claudeSonnet45, claudeOpus45],
|
|
95
|
+
"v4.1": [claudeOpus41],
|
|
96
|
+
v4: [claudeSonnet4, claudeOpus4],
|
|
97
|
+
"v3.7": [claudeSonnet37],
|
|
98
|
+
"v3.5": [claudeSonnet35, claudeHaiku35],
|
|
99
|
+
v3: [claudeHaiku3],
|
|
100
|
+
haiku: [claudeHaiku45, claudeHaiku35, claudeHaiku3],
|
|
101
|
+
sonnet: [claudeSonnet45, claudeSonnet4, claudeSonnet37, claudeSonnet35],
|
|
102
|
+
opus: [claudeOpus45, claudeOpus41, claudeOpus4],
|
|
103
|
+
};
|
|
104
|
+
const claudeGroups = {
|
|
105
|
+
"v4.x": [...claudeAtomic["v4.5"], ...claudeAtomic["v4.1"], ...claudeAtomic["v4"]],
|
|
106
|
+
"v3.x": [...claudeAtomic["v3.7"], ...claudeAtomic["v3.5"], ...claudeAtomic["v3"]],
|
|
107
|
+
};
|
|
108
|
+
export const claude = {
|
|
109
|
+
...claudeAtomic,
|
|
110
|
+
...claudeGroups,
|
|
111
|
+
latest: [...claudeAtomic["v4.5"]],
|
|
112
|
+
all: Object.values(claudeAtomic).flat(),
|
|
113
|
+
};
|
package/dist/models/catalog.d.ts
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
import type { ModelCatalog } from "./types";
|
|
2
|
-
|
|
2
|
+
type ModelCatalogInput = ModelCatalog | (() => ModelCatalog) | ModelCatalog[] | (() => ModelCatalog)[];
|
|
3
|
+
export declare function defineModelCatalog(...inputs: ModelCatalogInput[]): ModelCatalog;
|
|
4
|
+
export {};
|
package/dist/models/catalog.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
export function
|
|
2
|
-
|
|
1
|
+
export function defineModelCatalog(...inputs) {
|
|
2
|
+
const catalogs = inputs.flat().map((input) => (typeof input === "function" ? input() : input));
|
|
3
|
+
return Object.assign({}, ...catalogs);
|
|
3
4
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { modelMiddlewareMatcher } from "../../middleware/matcher";
|
|
2
|
+
// Convert `dimensions` (OpenAI) to `outputDimension` (Cohere)
|
|
3
|
+
export const cohereEmbeddingModelMiddleware = {
|
|
4
|
+
specificationVersion: "v3",
|
|
5
|
+
// eslint-disable-next-line require-await
|
|
6
|
+
transformParams: async ({ params }) => {
|
|
7
|
+
const unknown = params.providerOptions?.["unknown"];
|
|
8
|
+
if (!unknown)
|
|
9
|
+
return params;
|
|
10
|
+
let dimensions = unknown["dimensions"];
|
|
11
|
+
if (!dimensions)
|
|
12
|
+
dimensions = 1024;
|
|
13
|
+
(params.providerOptions["cohere"] ??= {})["outputDimension"] = dimensions;
|
|
14
|
+
delete unknown["dimensions"];
|
|
15
|
+
return params;
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
modelMiddlewareMatcher.useForModel("cohere/embed-*", { embedding: cohereEmbeddingModelMiddleware });
|