@velum-labs/routekit-gateway 1.0.6 → 1.0.7

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.
@@ -18,7 +18,7 @@ export type BedrockProviderSourceOptions = {
18
18
  mantleBackend?: BedrockMantleBackend;
19
19
  };
20
20
  export { fromBedrockConverseOutput, toBedrockConverseInput };
21
- export declare const BEDROCK_OPENAI_ALLOWLIST: readonly ["openai.gpt-5.4", "openai.gpt-5.5", "openai.gpt-5.6-sol", "openai.gpt-5.6-terra", "openai.gpt-5.6-luna"];
21
+ export declare const BEDROCK_OPENAI_ALLOWLIST: readonly ["openai.gpt-5.6-sol", "openai.gpt-5.6-terra", "openai.gpt-5.6-luna"];
22
22
  export declare function isBedrockOpenAiModel(modelId: string): boolean;
23
23
  /**
24
24
  * Remove OpenAI/Codex protocol fields that bedrock-mantle rejects while
@@ -12,8 +12,6 @@ import { OpenAiBackend } from "./openai-backend.js";
12
12
  import { gatewayTry, gatewayTryPromise } from "../effect/gateway.js";
13
13
  export { fromBedrockConverseOutput, toBedrockConverseInput };
14
14
  export const BEDROCK_OPENAI_ALLOWLIST = [
15
- "openai.gpt-5.4",
16
- "openai.gpt-5.5",
17
15
  "openai.gpt-5.6-sol",
18
16
  "openai.gpt-5.6-terra",
19
17
  "openai.gpt-5.6-luna"
@@ -126,13 +126,18 @@ test("Bedrock discovery includes active Anthropic foundations and paginated back
126
126
  assert.equal(commands.length, 3);
127
127
  });
128
128
  test("Bedrock OpenAI model ids stay on mantle and never match Anthropic Converse", () => {
129
- assert.equal(isBedrockOpenAiModel("openai.gpt-5.4"), true);
129
+ assert.equal(isBedrockOpenAiModel("openai.gpt-5.7"), true);
130
130
  assert.equal(isBedrockOpenAiModel("openai.gpt-5.6-sol"), true);
131
131
  assert.equal(isBedrockOpenAiModel("us.openai.gpt-5.6-terra"), true);
132
132
  assert.equal(isBedrockOpenAiModel("anthropic.claude-3"), false);
133
133
  assert.equal(isBedrockOpenAiModel("us.anthropic.claude-3"), false);
134
134
  });
135
- test("Bedrock discovery unions OpenAI mantle models when a bearer token is present", async () => {
135
+ test("Bedrock discovery advertises only verified OpenAI mantle models", async () => {
136
+ assert.deepEqual(BEDROCK_OPENAI_ALLOWLIST, [
137
+ "openai.gpt-5.6-sol",
138
+ "openai.gpt-5.6-terra",
139
+ "openai.gpt-5.6-luna"
140
+ ]);
136
141
  const source = new BedrockProviderSource({
137
142
  env: { AWS_BEARER_TOKEN_BEDROCK: "bedrock-key", AWS_REGION: "us-east-1" },
138
143
  controlClient: {
@@ -205,14 +210,14 @@ test("Bedrock routes OpenAI models through mantle and leaves Anthropic on Conver
205
210
  }
206
211
  }
207
212
  });
208
- assert.equal(source.responses.kind === "responses" && source.responses.supports("openai.gpt-5.4"), true);
213
+ assert.equal(source.responses.kind === "responses" && source.responses.supports("openai.gpt-5.6-sol"), true);
209
214
  assert.equal(source.responses.kind === "responses" && source.responses.supports("anthropic.claude-3"), false);
210
215
  assert.equal(source.capabilities.reasoningForModel("openai.gpt-5.6-sol")?.wireShape, "openai-responses");
211
216
  const openaiChat = await runRouteKitEffect(source.requests.chat({
212
- model: "openai.gpt-5.4",
217
+ model: "openai.gpt-5.6-sol",
213
218
  messages: [{ role: "user", content: "hi" }]
214
219
  }));
215
- assert.deepEqual(await openaiChat.json(), { id: "chat", model: "openai.gpt-5.4" });
220
+ assert.deepEqual(await openaiChat.json(), { id: "chat", model: "openai.gpt-5.6-sol" });
216
221
  assert.equal(source.responses.kind, "responses");
217
222
  if (source.responses.kind !== "responses")
218
223
  throw new Error("expected Responses support");
@@ -232,7 +237,7 @@ test("Bedrock routes OpenAI models through mantle and leaves Anthropic on Conver
232
237
  assert.equal(runtimeCalls.length, 1);
233
238
  assert.equal(runtimeCalls[0] instanceof ConverseCommand, true);
234
239
  assert.deepEqual(mantleCalls, [
235
- { kind: "chat", model: "openai.gpt-5.4" },
240
+ { kind: "chat", model: "openai.gpt-5.6-sol" },
236
241
  { kind: "responses", model: "openai.gpt-5.6-terra" }
237
242
  ]);
238
243
  const rejected = await runRouteKitEffect(source.responses.execute({
@@ -304,7 +309,7 @@ test("Bedrock OpenAI chat without a mantle key returns 400 and skips Converse",
304
309
  }
305
310
  });
306
311
  const response = await runRouteKitEffect(source.requests.chat({
307
- model: "openai.gpt-5.5",
312
+ model: "openai.gpt-5.6-luna",
308
313
  messages: [{ role: "user", content: "hi" }]
309
314
  }));
310
315
  assert.equal(response.status, 400);
@@ -134,7 +134,7 @@ test("GPT-5 Chat Completions translate max_tokens to max_completion_tokens", asy
134
134
  for (const model of [
135
135
  "gpt-5.6-sol",
136
136
  "openai.gpt-5.6-luna",
137
- "bedrock/openai.gpt-5.5",
137
+ "bedrock/openai.gpt-5.6-sol",
138
138
  "routekit/bedrock/us.openai.gpt-5.7"
139
139
  ]) {
140
140
  const response = await fetch(`${gateway.url()}/v1/chat/completions`, {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@velum-labs/routekit-gateway",
3
3
  "private": false,
4
- "version": "1.0.6",
4
+ "version": "1.0.7",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/velum-labs/routekit.git",
@@ -45,12 +45,12 @@
45
45
  "@aws-sdk/client-bedrock": "3.1095.0",
46
46
  "@aws-sdk/client-bedrock-runtime": "3.1095.0",
47
47
  "effect": "4.0.0-rc.108",
48
- "@velum-labs/routekit-config-core": "1.0.6",
49
- "@velum-labs/routekit-contracts": "1.0.6",
50
- "@velum-labs/routekit-eval-contracts": "1.0.6",
51
- "@velum-labs/routekit-eval-core": "1.0.6",
52
- "@velum-labs/routekit-registry": "1.0.6",
53
- "@velum-labs/routekit-runtime": "1.0.6"
48
+ "@velum-labs/routekit-config-core": "1.0.7",
49
+ "@velum-labs/routekit-contracts": "1.0.7",
50
+ "@velum-labs/routekit-eval-contracts": "1.0.7",
51
+ "@velum-labs/routekit-eval-core": "1.0.7",
52
+ "@velum-labs/routekit-registry": "1.0.7",
53
+ "@velum-labs/routekit-runtime": "1.0.7"
54
54
  },
55
55
  "keywords": [
56
56
  "routekit",