@hebo-ai/gateway 0.5.2 → 0.6.0-rc0

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.
Files changed (180) hide show
  1. package/README.md +32 -1
  2. package/package.json +17 -12
  3. package/src/endpoints/chat-completions/converters.test.ts +85 -1
  4. package/src/endpoints/chat-completions/converters.ts +139 -18
  5. package/src/endpoints/chat-completions/handler.test.ts +2 -0
  6. package/src/endpoints/chat-completions/index.ts +1 -0
  7. package/src/endpoints/chat-completions/otel.ts +1 -0
  8. package/src/endpoints/chat-completions/schema.ts +38 -4
  9. package/src/endpoints/embeddings/index.ts +1 -0
  10. package/src/lifecycle.ts +2 -2
  11. package/src/models/anthropic/middleware.test.ts +45 -1
  12. package/src/models/anthropic/middleware.ts +21 -1
  13. package/src/models/google/middleware.test.ts +30 -1
  14. package/src/models/google/middleware.ts +20 -1
  15. package/src/models/openai/middleware.test.ts +32 -1
  16. package/src/models/openai/middleware.ts +25 -1
  17. package/src/providers/bedrock/middleware.test.ts +121 -1
  18. package/src/providers/bedrock/middleware.ts +61 -1
  19. package/src/telemetry/fetch.ts +31 -4
  20. package/src/telemetry/index.ts +1 -0
  21. package/dist/config.d.ts +0 -2
  22. package/dist/config.js +0 -81
  23. package/dist/endpoints/chat-completions/converters.d.ts +0 -43
  24. package/dist/endpoints/chat-completions/converters.js +0 -551
  25. package/dist/endpoints/chat-completions/handler.d.ts +0 -2
  26. package/dist/endpoints/chat-completions/handler.js +0 -145
  27. package/dist/endpoints/chat-completions/index.d.ts +0 -3
  28. package/dist/endpoints/chat-completions/index.js +0 -3
  29. package/dist/endpoints/chat-completions/otel.d.ts +0 -6
  30. package/dist/endpoints/chat-completions/otel.js +0 -134
  31. package/dist/endpoints/chat-completions/schema.d.ts +0 -946
  32. package/dist/endpoints/chat-completions/schema.js +0 -257
  33. package/dist/endpoints/embeddings/converters.d.ts +0 -10
  34. package/dist/endpoints/embeddings/converters.js +0 -31
  35. package/dist/endpoints/embeddings/handler.d.ts +0 -2
  36. package/dist/endpoints/embeddings/handler.js +0 -101
  37. package/dist/endpoints/embeddings/index.d.ts +0 -3
  38. package/dist/endpoints/embeddings/index.js +0 -3
  39. package/dist/endpoints/embeddings/otel.d.ts +0 -6
  40. package/dist/endpoints/embeddings/otel.js +0 -35
  41. package/dist/endpoints/embeddings/schema.d.ts +0 -38
  42. package/dist/endpoints/embeddings/schema.js +0 -26
  43. package/dist/endpoints/models/converters.d.ts +0 -6
  44. package/dist/endpoints/models/converters.js +0 -42
  45. package/dist/endpoints/models/handler.d.ts +0 -2
  46. package/dist/endpoints/models/handler.js +0 -29
  47. package/dist/endpoints/models/index.d.ts +0 -3
  48. package/dist/endpoints/models/index.js +0 -3
  49. package/dist/endpoints/models/schema.d.ts +0 -42
  50. package/dist/endpoints/models/schema.js +0 -31
  51. package/dist/errors/ai-sdk.d.ts +0 -2
  52. package/dist/errors/ai-sdk.js +0 -52
  53. package/dist/errors/gateway.d.ts +0 -5
  54. package/dist/errors/gateway.js +0 -13
  55. package/dist/errors/openai.d.ts +0 -20
  56. package/dist/errors/openai.js +0 -40
  57. package/dist/errors/utils.d.ts +0 -22
  58. package/dist/errors/utils.js +0 -44
  59. package/dist/gateway.d.ts +0 -9
  60. package/dist/gateway.js +0 -34
  61. package/dist/index.d.ts +0 -14
  62. package/dist/index.js +0 -13
  63. package/dist/lifecycle.d.ts +0 -2
  64. package/dist/lifecycle.js +0 -94
  65. package/dist/logger/default.d.ts +0 -4
  66. package/dist/logger/default.js +0 -81
  67. package/dist/logger/index.d.ts +0 -14
  68. package/dist/logger/index.js +0 -25
  69. package/dist/middleware/common.d.ts +0 -12
  70. package/dist/middleware/common.js +0 -145
  71. package/dist/middleware/matcher.d.ts +0 -27
  72. package/dist/middleware/matcher.js +0 -112
  73. package/dist/middleware/utils.d.ts +0 -2
  74. package/dist/middleware/utils.js +0 -27
  75. package/dist/models/amazon/index.d.ts +0 -2
  76. package/dist/models/amazon/index.js +0 -2
  77. package/dist/models/amazon/middleware.d.ts +0 -3
  78. package/dist/models/amazon/middleware.js +0 -65
  79. package/dist/models/amazon/presets.d.ts +0 -2390
  80. package/dist/models/amazon/presets.js +0 -80
  81. package/dist/models/anthropic/index.d.ts +0 -2
  82. package/dist/models/anthropic/index.js +0 -2
  83. package/dist/models/anthropic/middleware.d.ts +0 -4
  84. package/dist/models/anthropic/middleware.js +0 -111
  85. package/dist/models/anthropic/presets.d.ts +0 -4802
  86. package/dist/models/anthropic/presets.js +0 -135
  87. package/dist/models/catalog.d.ts +0 -4
  88. package/dist/models/catalog.js +0 -4
  89. package/dist/models/cohere/index.d.ts +0 -2
  90. package/dist/models/cohere/index.js +0 -2
  91. package/dist/models/cohere/middleware.d.ts +0 -3
  92. package/dist/models/cohere/middleware.js +0 -60
  93. package/dist/models/cohere/presets.d.ts +0 -2918
  94. package/dist/models/cohere/presets.js +0 -134
  95. package/dist/models/google/index.d.ts +0 -2
  96. package/dist/models/google/index.js +0 -2
  97. package/dist/models/google/middleware.d.ts +0 -7
  98. package/dist/models/google/middleware.js +0 -103
  99. package/dist/models/google/presets.d.ts +0 -2553
  100. package/dist/models/google/presets.js +0 -83
  101. package/dist/models/meta/index.d.ts +0 -1
  102. package/dist/models/meta/index.js +0 -1
  103. package/dist/models/meta/presets.d.ts +0 -3254
  104. package/dist/models/meta/presets.js +0 -95
  105. package/dist/models/openai/index.d.ts +0 -2
  106. package/dist/models/openai/index.js +0 -2
  107. package/dist/models/openai/middleware.d.ts +0 -3
  108. package/dist/models/openai/middleware.js +0 -62
  109. package/dist/models/openai/presets.d.ts +0 -6634
  110. package/dist/models/openai/presets.js +0 -213
  111. package/dist/models/types.d.ts +0 -20
  112. package/dist/models/types.js +0 -84
  113. package/dist/models/voyage/index.d.ts +0 -2
  114. package/dist/models/voyage/index.js +0 -2
  115. package/dist/models/voyage/middleware.d.ts +0 -2
  116. package/dist/models/voyage/middleware.js +0 -18
  117. package/dist/models/voyage/presets.d.ts +0 -3471
  118. package/dist/models/voyage/presets.js +0 -85
  119. package/dist/providers/anthropic/canonical.d.ts +0 -3
  120. package/dist/providers/anthropic/canonical.js +0 -9
  121. package/dist/providers/anthropic/index.d.ts +0 -1
  122. package/dist/providers/anthropic/index.js +0 -1
  123. package/dist/providers/bedrock/canonical.d.ts +0 -17
  124. package/dist/providers/bedrock/canonical.js +0 -61
  125. package/dist/providers/bedrock/index.d.ts +0 -2
  126. package/dist/providers/bedrock/index.js +0 -2
  127. package/dist/providers/bedrock/middleware.d.ts +0 -3
  128. package/dist/providers/bedrock/middleware.js +0 -55
  129. package/dist/providers/cohere/canonical.d.ts +0 -3
  130. package/dist/providers/cohere/canonical.js +0 -17
  131. package/dist/providers/cohere/index.d.ts +0 -1
  132. package/dist/providers/cohere/index.js +0 -1
  133. package/dist/providers/groq/canonical.d.ts +0 -3
  134. package/dist/providers/groq/canonical.js +0 -12
  135. package/dist/providers/groq/index.d.ts +0 -1
  136. package/dist/providers/groq/index.js +0 -1
  137. package/dist/providers/openai/canonical.d.ts +0 -3
  138. package/dist/providers/openai/canonical.js +0 -8
  139. package/dist/providers/openai/index.d.ts +0 -1
  140. package/dist/providers/openai/index.js +0 -1
  141. package/dist/providers/registry.d.ts +0 -24
  142. package/dist/providers/registry.js +0 -100
  143. package/dist/providers/types.d.ts +0 -7
  144. package/dist/providers/types.js +0 -11
  145. package/dist/providers/vertex/canonical.d.ts +0 -3
  146. package/dist/providers/vertex/canonical.js +0 -8
  147. package/dist/providers/vertex/index.d.ts +0 -1
  148. package/dist/providers/vertex/index.js +0 -1
  149. package/dist/providers/voyage/canonical.d.ts +0 -3
  150. package/dist/providers/voyage/canonical.js +0 -7
  151. package/dist/providers/voyage/index.d.ts +0 -1
  152. package/dist/providers/voyage/index.js +0 -1
  153. package/dist/telemetry/ai-sdk.d.ts +0 -2
  154. package/dist/telemetry/ai-sdk.js +0 -31
  155. package/dist/telemetry/baggage.d.ts +0 -1
  156. package/dist/telemetry/baggage.js +0 -24
  157. package/dist/telemetry/fetch.d.ts +0 -2
  158. package/dist/telemetry/fetch.js +0 -24
  159. package/dist/telemetry/gen-ai.d.ts +0 -5
  160. package/dist/telemetry/gen-ai.js +0 -60
  161. package/dist/telemetry/http.d.ts +0 -3
  162. package/dist/telemetry/http.js +0 -54
  163. package/dist/telemetry/memory.d.ts +0 -2
  164. package/dist/telemetry/memory.js +0 -27
  165. package/dist/telemetry/span.d.ts +0 -13
  166. package/dist/telemetry/span.js +0 -60
  167. package/dist/telemetry/stream.d.ts +0 -3
  168. package/dist/telemetry/stream.js +0 -51
  169. package/dist/types.d.ts +0 -176
  170. package/dist/types.js +0 -1
  171. package/dist/utils/env.d.ts +0 -2
  172. package/dist/utils/env.js +0 -5
  173. package/dist/utils/headers.d.ts +0 -4
  174. package/dist/utils/headers.js +0 -22
  175. package/dist/utils/preset.d.ts +0 -9
  176. package/dist/utils/preset.js +0 -41
  177. package/dist/utils/request.d.ts +0 -2
  178. package/dist/utils/request.js +0 -14
  179. package/dist/utils/response.d.ts +0 -3
  180. package/dist/utils/response.js +0 -68
@@ -1,135 +0,0 @@
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 claudeSonnet46 = presetFor()("anthropic/claude-sonnet-4.6", {
47
- ...CLAUDE_BASE,
48
- ...CLAUDE_PDF_MODALITIES,
49
- name: "Claude Sonnet 4.6",
50
- capabilities: [...CLAUDE_BASE.capabilities, "reasoning"],
51
- created: "2026-02-17",
52
- knowledge: "2025-08",
53
- });
54
- export const claudeSonnet4 = presetFor()("anthropic/claude-sonnet-4", {
55
- ...CLAUDE_BASE,
56
- ...CLAUDE_PDF_MODALITIES,
57
- name: "Claude Sonnet 4",
58
- capabilities: [...CLAUDE_BASE.capabilities, "reasoning"],
59
- created: "2025-05-14",
60
- knowledge: "2025-03",
61
- });
62
- export const claudeSonnet37 = presetFor()("anthropic/claude-sonnet-3.7", {
63
- ...CLAUDE_BASE,
64
- ...CLAUDE_PDF_MODALITIES,
65
- name: "Claude Sonnet 3.7",
66
- capabilities: [...CLAUDE_BASE.capabilities, "reasoning"],
67
- created: "2025-02-19",
68
- knowledge: "2024-10",
69
- });
70
- export const claudeSonnet35 = presetFor()("anthropic/claude-sonnet-3.5", {
71
- ...CLAUDE_BASE,
72
- ...CLAUDE_PDF_MODALITIES,
73
- name: "Claude Sonnet 3.5",
74
- created: "2024-10-22",
75
- knowledge: "2024-04",
76
- });
77
- export const claudeOpus45 = presetFor()("anthropic/claude-opus-4.5", {
78
- ...CLAUDE_BASE,
79
- ...CLAUDE_PDF_MODALITIES,
80
- name: "Claude Opus 4.5",
81
- capabilities: [...CLAUDE_BASE.capabilities, "reasoning"],
82
- created: "2025-11-01",
83
- knowledge: "2025-05",
84
- });
85
- export const claudeOpus46 = presetFor()("anthropic/claude-opus-4.6", {
86
- ...CLAUDE_BASE,
87
- ...CLAUDE_PDF_MODALITIES,
88
- name: "Claude Opus 4.6",
89
- capabilities: [...CLAUDE_BASE.capabilities, "reasoning"],
90
- created: "2026-02-05",
91
- knowledge: "2025-05",
92
- });
93
- export const claudeOpus41 = presetFor()("anthropic/claude-opus-4.1", {
94
- ...CLAUDE_BASE,
95
- ...CLAUDE_PDF_MODALITIES,
96
- name: "Claude Opus 4.1",
97
- capabilities: [...CLAUDE_BASE.capabilities, "reasoning"],
98
- created: "2025-08-05",
99
- knowledge: "2025-03",
100
- });
101
- export const claudeOpus4 = presetFor()("anthropic/claude-opus-4", {
102
- ...CLAUDE_BASE,
103
- ...CLAUDE_PDF_MODALITIES,
104
- name: "Claude Opus 4",
105
- capabilities: [...CLAUDE_BASE.capabilities, "reasoning"],
106
- created: "2025-05-14",
107
- knowledge: "2025-03",
108
- });
109
- const claudeAtomic = {
110
- "v4.6": [claudeSonnet46, claudeOpus46],
111
- "v4.5": [claudeHaiku45, claudeSonnet45, claudeOpus45],
112
- "v4.1": [claudeOpus41],
113
- v4: [claudeSonnet4, claudeOpus4],
114
- "v3.7": [claudeSonnet37],
115
- "v3.5": [claudeSonnet35, claudeHaiku35],
116
- v3: [claudeHaiku3],
117
- haiku: [claudeHaiku45, claudeHaiku35, claudeHaiku3],
118
- sonnet: [claudeSonnet46, claudeSonnet45, claudeSonnet4, claudeSonnet37, claudeSonnet35],
119
- opus: [claudeOpus46, claudeOpus45, claudeOpus41, claudeOpus4],
120
- };
121
- const claudeGroups = {
122
- "v4.x": [
123
- ...claudeAtomic["v4.6"],
124
- ...claudeAtomic["v4.5"],
125
- ...claudeAtomic["v4.1"],
126
- ...claudeAtomic["v4"],
127
- ],
128
- "v3.x": [...claudeAtomic["v3.7"], ...claudeAtomic["v3.5"], ...claudeAtomic["v3"]],
129
- };
130
- export const claude = {
131
- ...claudeAtomic,
132
- ...claudeGroups,
133
- latest: [...claudeAtomic["v4.6"]],
134
- all: Object.values(claudeAtomic).flat(),
135
- };
@@ -1,4 +0,0 @@
1
- import type { ModelCatalog } from "./types";
2
- type ModelCatalogInput = ModelCatalog | (() => ModelCatalog) | ModelCatalog[] | (() => ModelCatalog)[];
3
- export declare function defineModelCatalog(...inputs: ModelCatalogInput[]): ModelCatalog;
4
- export {};
@@ -1,4 +0,0 @@
1
- export function defineModelCatalog(...inputs) {
2
- const catalogs = inputs.flat().map((input) => (typeof input === "function" ? input() : input));
3
- return Object.assign({}, ...catalogs);
4
- }
@@ -1,2 +0,0 @@
1
- export * from "./middleware";
2
- export * from "./presets";
@@ -1,2 +0,0 @@
1
- export * from "./middleware";
2
- export * from "./presets";
@@ -1,3 +0,0 @@
1
- import type { EmbeddingModelMiddleware, LanguageModelMiddleware } from "ai";
2
- export declare const cohereDimensionsMiddleware: EmbeddingModelMiddleware;
3
- export declare const cohereReasoningMiddleware: LanguageModelMiddleware;
@@ -1,60 +0,0 @@
1
- import { modelMiddlewareMatcher } from "../../middleware/matcher";
2
- import { calculateReasoningBudgetFromEffort } from "../../middleware/utils";
3
- // Convert `dimensions` (OpenAI) to `outputDimension` (Cohere)
4
- export const cohereDimensionsMiddleware = {
5
- specificationVersion: "v3",
6
- // eslint-disable-next-line require-await
7
- transformParams: async ({ params, model }) => {
8
- const unknown = params.providerOptions?.["unknown"];
9
- if (!unknown)
10
- return params;
11
- const modelId = model.modelId;
12
- if (modelId.includes("cohere/embed-english-light") ||
13
- modelId.includes("cohere/embed-multilingual-light")) {
14
- delete unknown["dimensions"];
15
- return params;
16
- }
17
- const dimensions = unknown["dimensions"];
18
- if (!dimensions)
19
- return params;
20
- (params.providerOptions["cohere"] ??= {})["outputDimension"] = dimensions;
21
- delete unknown["dimensions"];
22
- return params;
23
- },
24
- };
25
- const COHERE_MAX_OUTPUT_TOKENS = 32000;
26
- export const cohereReasoningMiddleware = {
27
- specificationVersion: "v3",
28
- // eslint-disable-next-line require-await
29
- transformParams: async ({ params }) => {
30
- const unknown = params.providerOptions?.["unknown"];
31
- if (!unknown)
32
- return params;
33
- const reasoning = unknown["reasoning"];
34
- if (!reasoning)
35
- return params;
36
- const target = (params.providerOptions["cohere"] ??= {});
37
- if (!reasoning.enabled) {
38
- target["thinking"] = { type: "disabled" };
39
- }
40
- else if (reasoning.max_tokens) {
41
- target["thinking"] = { type: "enabled", tokenBudget: reasoning.max_tokens };
42
- }
43
- else if (reasoning.effort) {
44
- // FUTURE: warn that reasoning.max_tokens was computed
45
- target["thinking"] = {
46
- type: "enabled",
47
- tokenBudget: calculateReasoningBudgetFromEffort(reasoning.effort, params.maxOutputTokens ?? COHERE_MAX_OUTPUT_TOKENS, 1024),
48
- };
49
- }
50
- else {
51
- target["thinking"] = { type: "enabled" };
52
- }
53
- delete unknown["reasoning"];
54
- return params;
55
- },
56
- };
57
- modelMiddlewareMatcher.useForModel("cohere/embed-*", { embedding: [cohereDimensionsMiddleware] });
58
- modelMiddlewareMatcher.useForModel("cohere/command-a-reasoning", {
59
- language: [cohereReasoningMiddleware],
60
- });