diff --git a/.env.example b/.env.example index 35eaa1b068..76c0e12a4b 100644 --- a/.env.example +++ b/.env.example @@ -187,6 +187,8 @@ LLM_Z_AI_API_KEY=your_zai_key_here # AWS Bedrock LLM_AWS_BEDROCK_API_KEY=your_aws_bedrock_key_here +# AWS Bedrock Region (options: us-east-1, us-west-2, eu-west-1, eu-central-1, ap-northeast-1, ap-southeast-1) +# LLM_AWS_BEDROCK_REGION=us-east-1 # Azure LLM_AZURE_API_KEY=your_azure_key_here diff --git a/apps/api/src/routes/keys-provider.ts b/apps/api/src/routes/keys-provider.ts index 3bffef1cac..23696866f0 100644 --- a/apps/api/src/routes/keys-provider.ts +++ b/apps/api/src/routes/keys-provider.ts @@ -29,6 +29,18 @@ const providerKeySchema = z.object({ options: z .object({ aws_bedrock_region_prefix: z.enum(["us.", "global.", "eu."]).optional(), + aws_bedrock_region: z + .enum([ + "us-east-1", + "us-east-2", + "us-west-1", + "us-west-2", + "eu-west-1", + "eu-central-1", + "ap-northeast-1", + "ap-southeast-1", + ]) + .optional(), azure_resource: z.string().optional(), azure_api_version: z.string().optional(), azure_deployment_type: z.enum(["openai", "ai-foundry"]).optional(), @@ -59,6 +71,18 @@ const createProviderKeySchema = z.object({ options: z .object({ aws_bedrock_region_prefix: z.enum(["us.", "global.", "eu."]).optional(), + aws_bedrock_region: z + .enum([ + "us-east-1", + "us-east-2", + "us-west-1", + "us-west-2", + "eu-west-1", + "eu-central-1", + "ap-northeast-1", + "ap-southeast-1", + ]) + .optional(), azure_resource: z.string().optional(), azure_api_version: z.string().optional(), azure_deployment_type: z.enum(["openai", "ai-foundry"]).optional(), diff --git a/apps/code/src/lib/api/v1.d.ts b/apps/code/src/lib/api/v1.d.ts index 3f27cfb250..a682621925 100644 --- a/apps/code/src/lib/api/v1.d.ts +++ b/apps/code/src/lib/api/v1.d.ts @@ -4837,6 +4837,8 @@ export interface paths { options: { /** @enum {string} */ aws_bedrock_region_prefix?: "us." | "global." | "eu."; + /** @enum {string} */ + aws_bedrock_region?: "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "eu-west-1" | "eu-central-1" | "ap-northeast-1" | "ap-southeast-1"; azure_resource?: string; azure_api_version?: string; /** @enum {string} */ @@ -4874,6 +4876,8 @@ export interface paths { options?: { /** @enum {string} */ aws_bedrock_region_prefix?: "us." | "global." | "eu."; + /** @enum {string} */ + aws_bedrock_region?: "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "eu-west-1" | "eu-central-1" | "ap-northeast-1" | "ap-southeast-1"; azure_resource?: string; azure_api_version?: string; /** @enum {string} */ @@ -4904,6 +4908,8 @@ export interface paths { options: { /** @enum {string} */ aws_bedrock_region_prefix?: "us." | "global." | "eu."; + /** @enum {string} */ + aws_bedrock_region?: "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "eu-west-1" | "eu-central-1" | "ap-northeast-1" | "ap-southeast-1"; azure_resource?: string; azure_api_version?: string; /** @enum {string} */ @@ -5022,6 +5028,8 @@ export interface paths { options: { /** @enum {string} */ aws_bedrock_region_prefix?: "us." | "global." | "eu."; + /** @enum {string} */ + aws_bedrock_region?: "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "eu-west-1" | "eu-central-1" | "ap-northeast-1" | "ap-southeast-1"; azure_resource?: string; azure_api_version?: string; /** @enum {string} */ diff --git a/apps/gateway/src/chat-helpers.e2e.ts b/apps/gateway/src/chat-helpers.e2e.ts index 349003a066..bd54fe56e5 100644 --- a/apps/gateway/src/chat-helpers.e2e.ts +++ b/apps/gateway/src/chat-helpers.e2e.ts @@ -264,6 +264,13 @@ export const testModels = filteredModels model.providers as ProviderModelMapping[], ); for (const provider of expandedProviders) { + // Skip region-specific entries by default — they duplicate the root + // entry and require region-aware provider keys. Only include them + // when explicitly requested via TEST_MODELS with a region suffix. + if (provider.region && !specifiedModels) { + continue; + } + // Skip deactivated provider mappings if (provider.deactivatedAt && new Date() > provider.deactivatedAt) { continue; @@ -352,6 +359,11 @@ export const providerModels = filteredModels model.providers as ProviderModelMapping[], ); for (const provider of expandedProviders) { + // Skip region-specific entries by default + if (provider.region && !specifiedModels) { + continue; + } + // Skip deactivated provider mappings if (provider.deactivatedAt && new Date() > provider.deactivatedAt) { continue; diff --git a/apps/gateway/src/lib/costs.spec.ts b/apps/gateway/src/lib/costs.spec.ts index 72b5ba4548..54b230fecd 100644 --- a/apps/gateway/src/lib/costs.spec.ts +++ b/apps/gateway/src/lib/costs.spec.ts @@ -504,6 +504,85 @@ describe("calculateCosts", () => { expect(result.imageInputCost).toBeCloseTo(1120 * (2 / 1e6) * 0.8); }); + describe("region-aware cost lookup", () => { + it("should calculate costs for a bedrock model with region suffix", async () => { + // anthropic.claude-sonnet-4-5-20250929-v1:0 on aws-bedrock with us-east-1 region + const result = await calculateCosts( + "anthropic.claude-sonnet-4-5-20250929-v1:0:us-east-1", + "aws-bedrock", + 100, + 50, + null, + ); + + // Should find the model via expanded region entries + expect(result.inputCost).not.toBeNull(); + expect(result.outputCost).not.toBeNull(); + expect(result.totalCost).not.toBeNull(); + expect(result.promptTokens).toBe(100); + expect(result.completionTokens).toBe(50); + // aws-bedrock claude-sonnet-4-5-20250929 inputPrice: 3.0/1e6, outputPrice: 15.0/1e6, discount: 0.3 + expect(result.inputCost).toBeCloseTo(100 * (3.0 / 1e6) * 0.7); + expect(result.outputCost).toBeCloseTo(50 * (15.0 / 1e6) * 0.7); + }); + + it("should calculate costs for base bedrock model without region suffix", async () => { + const result = await calculateCosts( + "anthropic.claude-sonnet-4-5-20250929-v1:0", + "aws-bedrock", + 100, + 50, + null, + ); + + expect(result.inputCost).not.toBeNull(); + expect(result.outputCost).not.toBeNull(); + expect(result.inputCost).toBeCloseTo(100 * (3.0 / 1e6) * 0.7); + expect(result.outputCost).toBeCloseTo(50 * (15.0 / 1e6) * 0.7); + }); + + it("should return null costs for non-existent region on bedrock model", async () => { + // Using a region that doesn't exist for this model. + // The baseModel extraction splits on ":" so "v1:0:sa-east-1" becomes + // "anthropic.claude-sonnet-4-5-20250929-v1" which doesn't match any model. + const result = await calculateCosts( + "anthropic.claude-sonnet-4-5-20250929-v1:0:sa-east-1", + "aws-bedrock", + 100, + 50, + null, + ); + + // Cost lookup returns null because the colon-based baseModel extraction + // can't handle Bedrock model names that already contain colons + expect(result.inputCost).toBeNull(); + }); + + it("should use region-specific pricing when defined (alibaba)", async () => { + // qwen-max on alibaba: default inputPrice 1.6/1e6, cn-beijing inputPrice 0.345/1e6 + const resultDefault = await calculateCosts( + "qwen-max:singapore", + "alibaba", + 1000, + 500, + null, + ); + + const resultBeijing = await calculateCosts( + "qwen-max:cn-beijing", + "alibaba", + 1000, + 500, + null, + ); + + expect(resultDefault.inputCost).not.toBeNull(); + expect(resultBeijing.inputCost).not.toBeNull(); + // Beijing pricing should be cheaper than Singapore + expect(resultBeijing.inputCost!).toBeLessThan(resultDefault.inputCost!); + }); + }); + it("should include image costs in totalCost sum", async () => { // totalCost = inputCost + outputCost + cachedInputCost + requestCost + webSearchCost // (inputCost already includes imageInputCost, outputCost already includes imageOutputCost) diff --git a/apps/gateway/src/lib/costs.ts b/apps/gateway/src/lib/costs.ts index d2be59ba6a..229ffe4362 100644 --- a/apps/gateway/src/lib/costs.ts +++ b/apps/gateway/src/lib/costs.ts @@ -118,6 +118,16 @@ export async function calculateCosts( ) as ModelDefinition; } + // Fallback: search expanded providers for region-suffixed model names + // (e.g., "anthropic.claude-3-5-haiku-20241022-v1:0:us-east-1") + if (!modelInfo) { + modelInfo = models.find((m) => + expandAllProviderRegions(m.providers as ProviderModelMapping[]).some( + (p) => p.modelName === model, + ), + ) as ModelDefinition; + } + if (!modelInfo) { return { inputCost: null, diff --git a/apps/playground/src/components/model-selector.tsx b/apps/playground/src/components/model-selector.tsx index e4e4f35f76..d8317c513e 100644 --- a/apps/playground/src/components/model-selector.tsx +++ b/apps/playground/src/components/model-selector.tsx @@ -462,11 +462,26 @@ export function ModelSelector({ const [selectedProviderId, selectedModelIdRaw] = raw.includes("/") ? (raw.split("/") as [string, string]) : ["", raw]; - // Strip :region suffix for root model lookup, keep raw for mapping match + // Strip the last :region segment for root model lookup, keep raw for mapping match. + // Model names can contain colons (e.g., "anthropic.claude-3-5-haiku-20241022-v1:0"), + // so we only strip the final segment to preserve the base model name. const selectedModelId = selectedModelIdRaw.includes(":") - ? selectedModelIdRaw.split(":")[0] + ? selectedModelIdRaw.split(":").slice(0, -1).join(":") : selectedModelIdRaw; - const selectedModel = models.find((m) => m.id === selectedModelId); + // Direct lookup by model.id, then fallback: search all models for a mapping + // that matches the raw provider model name (handles region-expanded names like + // "anthropic.claude-3-5-haiku-20241022-v1:0:us-east-1") + const selectedModel = + models.find((m) => m.id === selectedModelId) ?? + (selectedProviderId + ? models.find((m) => + m.mappings.some( + (p) => + p.providerId === selectedProviderId && + p.modelName === selectedModelIdRaw, + ), + ) + : undefined); const selectedProviderDef = providers.find( (p) => p.id === selectedProviderId, ); diff --git a/apps/playground/src/lib/api/v1.d.ts b/apps/playground/src/lib/api/v1.d.ts index 3f27cfb250..a682621925 100644 --- a/apps/playground/src/lib/api/v1.d.ts +++ b/apps/playground/src/lib/api/v1.d.ts @@ -4837,6 +4837,8 @@ export interface paths { options: { /** @enum {string} */ aws_bedrock_region_prefix?: "us." | "global." | "eu."; + /** @enum {string} */ + aws_bedrock_region?: "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "eu-west-1" | "eu-central-1" | "ap-northeast-1" | "ap-southeast-1"; azure_resource?: string; azure_api_version?: string; /** @enum {string} */ @@ -4874,6 +4876,8 @@ export interface paths { options?: { /** @enum {string} */ aws_bedrock_region_prefix?: "us." | "global." | "eu."; + /** @enum {string} */ + aws_bedrock_region?: "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "eu-west-1" | "eu-central-1" | "ap-northeast-1" | "ap-southeast-1"; azure_resource?: string; azure_api_version?: string; /** @enum {string} */ @@ -4904,6 +4908,8 @@ export interface paths { options: { /** @enum {string} */ aws_bedrock_region_prefix?: "us." | "global." | "eu."; + /** @enum {string} */ + aws_bedrock_region?: "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "eu-west-1" | "eu-central-1" | "ap-northeast-1" | "ap-southeast-1"; azure_resource?: string; azure_api_version?: string; /** @enum {string} */ @@ -5022,6 +5028,8 @@ export interface paths { options: { /** @enum {string} */ aws_bedrock_region_prefix?: "us." | "global." | "eu."; + /** @enum {string} */ + aws_bedrock_region?: "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "eu-west-1" | "eu-central-1" | "ap-northeast-1" | "ap-southeast-1"; azure_resource?: string; azure_api_version?: string; /** @enum {string} */ diff --git a/apps/ui/package.json b/apps/ui/package.json index 4022bc2414..6f0677702d 100644 --- a/apps/ui/package.json +++ b/apps/ui/package.json @@ -58,6 +58,7 @@ "api": "workspace:*", "babel-plugin-react-compiler": "1.0.0", "better-auth": "1.5.5", + "canvas-confetti": "1.9.4", "class-variance-authority": "0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", @@ -91,6 +92,7 @@ }, "devDependencies": { "@tanstack/react-query-devtools": "5.90.2", + "@types/canvas-confetti": "1.9.0", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "autoprefixer": "^10.4.21", diff --git a/apps/ui/src/components/provider-keys/provider-keys-list.tsx b/apps/ui/src/components/provider-keys/provider-keys-list.tsx index 8649a0deea..26273c4f3a 100644 --- a/apps/ui/src/components/provider-keys/provider-keys-list.tsx +++ b/apps/ui/src/components/provider-keys/provider-keys-list.tsx @@ -56,7 +56,8 @@ interface ProviderKeysListProps { function formatOptionLabel(key: string, value: string): string { const labels: Record = { - aws_bedrock_region_prefix: "Region", + aws_bedrock_region_prefix: "Cross-Region Prefix", + aws_bedrock_region: "Region", azure_resource: "Resource", azure_api_version: "API Version", azure_deployment_type: "Deployment", diff --git a/apps/ui/src/lib/api/v1.d.ts b/apps/ui/src/lib/api/v1.d.ts index 3f27cfb250..a682621925 100644 --- a/apps/ui/src/lib/api/v1.d.ts +++ b/apps/ui/src/lib/api/v1.d.ts @@ -4837,6 +4837,8 @@ export interface paths { options: { /** @enum {string} */ aws_bedrock_region_prefix?: "us." | "global." | "eu."; + /** @enum {string} */ + aws_bedrock_region?: "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "eu-west-1" | "eu-central-1" | "ap-northeast-1" | "ap-southeast-1"; azure_resource?: string; azure_api_version?: string; /** @enum {string} */ @@ -4874,6 +4876,8 @@ export interface paths { options?: { /** @enum {string} */ aws_bedrock_region_prefix?: "us." | "global." | "eu."; + /** @enum {string} */ + aws_bedrock_region?: "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "eu-west-1" | "eu-central-1" | "ap-northeast-1" | "ap-southeast-1"; azure_resource?: string; azure_api_version?: string; /** @enum {string} */ @@ -4904,6 +4908,8 @@ export interface paths { options: { /** @enum {string} */ aws_bedrock_region_prefix?: "us." | "global." | "eu."; + /** @enum {string} */ + aws_bedrock_region?: "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "eu-west-1" | "eu-central-1" | "ap-northeast-1" | "ap-southeast-1"; azure_resource?: string; azure_api_version?: string; /** @enum {string} */ @@ -5022,6 +5028,8 @@ export interface paths { options: { /** @enum {string} */ aws_bedrock_region_prefix?: "us." | "global." | "eu."; + /** @enum {string} */ + aws_bedrock_region?: "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "eu-west-1" | "eu-central-1" | "ap-northeast-1" | "ap-southeast-1"; azure_resource?: string; azure_api_version?: string; /** @enum {string} */ diff --git a/ee/admin/src/lib/api/v1.d.ts b/ee/admin/src/lib/api/v1.d.ts index 3f27cfb250..a682621925 100644 --- a/ee/admin/src/lib/api/v1.d.ts +++ b/ee/admin/src/lib/api/v1.d.ts @@ -4837,6 +4837,8 @@ export interface paths { options: { /** @enum {string} */ aws_bedrock_region_prefix?: "us." | "global." | "eu."; + /** @enum {string} */ + aws_bedrock_region?: "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "eu-west-1" | "eu-central-1" | "ap-northeast-1" | "ap-southeast-1"; azure_resource?: string; azure_api_version?: string; /** @enum {string} */ @@ -4874,6 +4876,8 @@ export interface paths { options?: { /** @enum {string} */ aws_bedrock_region_prefix?: "us." | "global." | "eu."; + /** @enum {string} */ + aws_bedrock_region?: "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "eu-west-1" | "eu-central-1" | "ap-northeast-1" | "ap-southeast-1"; azure_resource?: string; azure_api_version?: string; /** @enum {string} */ @@ -4904,6 +4908,8 @@ export interface paths { options: { /** @enum {string} */ aws_bedrock_region_prefix?: "us." | "global." | "eu."; + /** @enum {string} */ + aws_bedrock_region?: "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "eu-west-1" | "eu-central-1" | "ap-northeast-1" | "ap-southeast-1"; azure_resource?: string; azure_api_version?: string; /** @enum {string} */ @@ -5022,6 +5028,8 @@ export interface paths { options: { /** @enum {string} */ aws_bedrock_region_prefix?: "us." | "global." | "eu."; + /** @enum {string} */ + aws_bedrock_region?: "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2" | "eu-west-1" | "eu-central-1" | "ap-northeast-1" | "ap-southeast-1"; azure_resource?: string; azure_api_version?: string; /** @enum {string} */ diff --git a/packages/actions/src/get-provider-endpoint.spec.ts b/packages/actions/src/get-provider-endpoint.spec.ts index 7a0560a171..80ecfa8547 100644 --- a/packages/actions/src/get-provider-endpoint.spec.ts +++ b/packages/actions/src/get-provider-endpoint.spec.ts @@ -169,4 +169,217 @@ describe("getProviderEndpoint", () => { "https://vertex-2.example/v1/projects/project-b/locations/us-central1/publishers/google/models/gemini-2.5-pro:streamGenerateContent?alt=sse", ); }); + + describe("aws-bedrock region prefix", () => { + const originalBedrockBaseUrl = process.env.LLM_AWS_BEDROCK_BASE_URL; + + afterEach(() => { + if (originalBedrockBaseUrl === undefined) { + delete process.env.LLM_AWS_BEDROCK_BASE_URL; + } else { + process.env.LLM_AWS_BEDROCK_BASE_URL = originalBedrockBaseUrl; + } + }); + + it("uses 'us.' prefix for us-east-1 region", () => { + process.env.LLM_AWS_BEDROCK_BASE_URL = + "https://bedrock-runtime.us-east-1.amazonaws.com"; + + const endpoint = getProviderEndpoint( + "aws-bedrock", + undefined, + "anthropic.claude-sonnet-4-5-20250929-v1:0", + undefined, + false, + undefined, + undefined, + undefined, + undefined, + undefined, + "us-east-1", + ); + + expect(endpoint).toContain( + "/model/us.anthropic.claude-sonnet-4-5-20250929-v1:0/converse", + ); + }); + + it("uses 'us.' prefix for us-west-2 region", () => { + process.env.LLM_AWS_BEDROCK_BASE_URL = + "https://bedrock-runtime.us-west-2.amazonaws.com"; + + const endpoint = getProviderEndpoint( + "aws-bedrock", + undefined, + "anthropic.claude-sonnet-4-5-20250929-v1:0", + undefined, + false, + undefined, + undefined, + undefined, + undefined, + undefined, + "us-west-2", + ); + + expect(endpoint).toContain( + "/model/us.anthropic.claude-sonnet-4-5-20250929-v1:0/converse", + ); + }); + + it("uses 'eu.' prefix for eu-west-1 region", () => { + process.env.LLM_AWS_BEDROCK_BASE_URL = + "https://bedrock-runtime.eu-west-1.amazonaws.com"; + + const endpoint = getProviderEndpoint( + "aws-bedrock", + undefined, + "anthropic.claude-sonnet-4-5-20250929-v1:0", + undefined, + false, + undefined, + undefined, + undefined, + undefined, + undefined, + "eu-west-1", + ); + + expect(endpoint).toContain( + "/model/eu.anthropic.claude-sonnet-4-5-20250929-v1:0/converse", + ); + }); + + it("uses 'apac.' prefix for ap-northeast-1 region", () => { + process.env.LLM_AWS_BEDROCK_BASE_URL = + "https://bedrock-runtime.ap-northeast-1.amazonaws.com"; + + const endpoint = getProviderEndpoint( + "aws-bedrock", + undefined, + "anthropic.claude-sonnet-4-5-20250929-v1:0", + undefined, + false, + undefined, + undefined, + undefined, + undefined, + undefined, + "ap-northeast-1", + ); + + expect(endpoint).toContain( + "/model/apac.anthropic.claude-sonnet-4-5-20250929-v1:0/converse", + ); + }); + + it("uses 'apac.' prefix for me- regions", () => { + process.env.LLM_AWS_BEDROCK_BASE_URL = + "https://bedrock-runtime.me-central-1.amazonaws.com"; + + const endpoint = getProviderEndpoint( + "aws-bedrock", + undefined, + "anthropic.claude-sonnet-4-5-20250929-v1:0", + undefined, + false, + undefined, + undefined, + undefined, + undefined, + undefined, + "me-central-1", + ); + + expect(endpoint).toContain( + "/model/apac.anthropic.claude-sonnet-4-5-20250929-v1:0/converse", + ); + }); + + it("falls back to 'us.' prefix for unknown region prefixes", () => { + process.env.LLM_AWS_BEDROCK_BASE_URL = + "https://bedrock-runtime.ca-central-1.amazonaws.com"; + + const endpoint = getProviderEndpoint( + "aws-bedrock", + undefined, + "anthropic.claude-sonnet-4-5-20250929-v1:0", + undefined, + false, + undefined, + undefined, + undefined, + undefined, + undefined, + "ca-central-1", + ); + + expect(endpoint).toContain( + "/model/us.anthropic.claude-sonnet-4-5-20250929-v1:0/converse", + ); + }); + + it("uses converse-stream endpoint when streaming", () => { + process.env.LLM_AWS_BEDROCK_BASE_URL = + "https://bedrock-runtime.us-east-1.amazonaws.com"; + + const endpoint = getProviderEndpoint( + "aws-bedrock", + undefined, + "anthropic.claude-sonnet-4-5-20250929-v1:0", + undefined, + true, + undefined, + undefined, + undefined, + undefined, + undefined, + "us-east-1", + ); + + expect(endpoint).toContain( + "/model/us.anthropic.claude-sonnet-4-5-20250929-v1:0/converse-stream", + ); + }); + + it("falls back to legacy prefix when no region is provided", () => { + process.env.LLM_AWS_BEDROCK_BASE_URL = + "https://bedrock-runtime.us-east-1.amazonaws.com"; + + const endpoint = getProviderEndpoint( + "aws-bedrock", + undefined, + "anthropic.claude-sonnet-4-5-20250929-v1:0", + undefined, + false, + ); + + expect(endpoint).toContain( + "/model/global.anthropic.claude-sonnet-4-5-20250929-v1:0/converse", + ); + }); + + it("uses providerKeyOptions prefix when no region is provided", () => { + process.env.LLM_AWS_BEDROCK_BASE_URL = + "https://bedrock-runtime.us-east-1.amazonaws.com"; + + const endpoint = getProviderEndpoint( + "aws-bedrock", + undefined, + "anthropic.claude-sonnet-4-5-20250929-v1:0", + undefined, + false, + undefined, + undefined, + { aws_bedrock_region_prefix: "eu." }, + undefined, + undefined, + undefined, + ); + + expect(endpoint).toContain( + "/model/eu.anthropic.claude-sonnet-4-5-20250929-v1:0/converse", + ); + }); + }); }); diff --git a/packages/actions/src/get-provider-endpoint.ts b/packages/actions/src/get-provider-endpoint.ts index 146c74cf73..be3bde7867 100644 --- a/packages/actions/src/get-provider-endpoint.ts +++ b/packages/actions/src/get-provider-endpoint.ts @@ -10,6 +10,26 @@ import { import type { ProviderKeyOptions } from "@llmgateway/db"; +/** + * Derive the AWS Bedrock cross-region inference prefix from a region ID. + * Many newer models are only available through cross-region inference profiles. + */ +function bedrockRegionPrefix(region: string): string { + if (region.startsWith("us-")) { + return "us."; + } + if (region.startsWith("eu-")) { + return "eu."; + } + if (region.startsWith("ap-")) { + return "apac."; + } + if (region.startsWith("me-")) { + return "apac."; + } + return "us."; +} + function buildVertexCompatibleEndpoint( provider: "google-vertex" | "quartz", url: string, @@ -220,12 +240,14 @@ export function getProviderEndpoint( break; case "aws-bedrock": url = + regionBaseUrl ?? getProviderEnvValue( "aws-bedrock", "baseUrl", configIndex, "https://bedrock-runtime.us-east-1.amazonaws.com", - ) ?? "https://bedrock-runtime.us-east-1.amazonaws.com"; + ) ?? + "https://bedrock-runtime.us-east-1.amazonaws.com"; break; case "azure": { const resource = @@ -330,10 +352,20 @@ export function getProviderEndpoint( } return `${url}/api/paas/v4/chat/completions`; case "aws-bedrock": { - const prefix = - providerKeyOptions?.aws_bedrock_region_prefix ?? - getProviderEnvValue("aws-bedrock", "region", configIndex, "global.") ?? - "global."; + // When a specific region is selected (via regionConfig), derive the + // cross-region inference prefix from the region. Many newer models + // (Claude Sonnet 4, Opus 4.5, etc.) are CR-only and require a prefix. + // Fall back to the legacy explicit prefix for backward compatibility. + const prefix = region + ? bedrockRegionPrefix(region) + : (providerKeyOptions?.aws_bedrock_region_prefix ?? + getProviderEnvValue( + "aws-bedrock", + "region", + configIndex, + "global.", + ) ?? + "global."); const endpoint = stream ? "converse-stream" : "converse"; return `${url}/model/${prefix}${modelName}/${endpoint}`; diff --git a/packages/db/src/schema.ts b/packages/db/src/schema.ts index fae76f7b97..cdbe2022d9 100644 --- a/packages/db/src/schema.ts +++ b/packages/db/src/schema.ts @@ -466,6 +466,15 @@ export const apiKeyIamRule = pgTable( export interface ProviderKeyOptions { aws_bedrock_region_prefix?: "us." | "global." | "eu."; + aws_bedrock_region?: + | "us-east-1" + | "us-east-2" + | "us-west-1" + | "us-west-2" + | "eu-west-1" + | "eu-central-1" + | "ap-northeast-1" + | "ap-southeast-1"; azure_resource?: string; azure_api_version?: string; azure_deployment_type?: "openai" | "ai-foundry"; diff --git a/packages/models/src/models/alibaba.ts b/packages/models/src/models/alibaba.ts index 14b2ac8ef7..34eb53194c 100644 --- a/packages/models/src/models/alibaba.ts +++ b/packages/models/src/models/alibaba.ts @@ -656,6 +656,8 @@ export const alibabaModels = [ { providerId: "nebius", modelName: "Qwen/Qwen2.5-Coder-7B-fast", + // Model removed from Nebius API + deactivatedAt: new Date("2026-04-14"), inputPrice: 0.01 / 1e6, outputPrice: 0.03 / 1e6, requestPrice: 0, @@ -790,6 +792,7 @@ export const alibabaModels = [ providers: [ { providerId: "nebius", + deactivatedAt: new Date("2026-04-14"), modelName: "Qwen/Qwen3-Coder-480B-A35B-Instruct", inputPrice: 0.4 / 1e6, outputPrice: 1.8 / 1e6, @@ -852,6 +855,7 @@ export const alibabaModels = [ providers: [ { providerId: "nebius", + deactivatedAt: new Date("2026-04-14"), modelName: "Qwen/Qwen3-Coder-30B-A3B-Instruct", inputPrice: 0.1 / 1e6, outputPrice: 0.3 / 1e6, @@ -921,6 +925,7 @@ export const alibabaModels = [ providers: [ { providerId: "nebius", + deactivatedAt: new Date("2026-04-14"), modelName: "Qwen/Qwen3-30B-A3B-Thinking-2507", inputPrice: 0.1 / 1e6, outputPrice: 0.3 / 1e6, diff --git a/packages/models/src/models/anthropic.ts b/packages/models/src/models/anthropic.ts index 4d4814db80..bc89cc77e2 100644 --- a/packages/models/src/models/anthropic.ts +++ b/packages/models/src/models/anthropic.ts @@ -49,6 +49,14 @@ export const anthropicModels = [ vision: false, tools: true, jsonOutputSchema: true, + regions: [ + { id: "us-east-1" }, + { id: "us-west-2" }, + { id: "eu-west-1" }, + { id: "eu-central-1" }, + { id: "ap-northeast-1" }, + { id: "ap-southeast-1" }, + ], }, ], }, @@ -155,6 +163,12 @@ export const anthropicModels = [ vision: false, tools: true, jsonOutputSchema: true, + regions: [ + { id: "us-east-1" }, + { id: "us-west-2" }, + { id: "ap-northeast-1" }, + { id: "ap-southeast-1" }, + ], }, ], }, @@ -226,6 +240,14 @@ export const anthropicModels = [ vision: false, tools: true, jsonOutputSchema: true, + regions: [ + { id: "us-east-1" }, + { id: "us-west-2" }, + { id: "eu-west-1" }, + { id: "eu-central-1" }, + { id: "ap-northeast-1" }, + { id: "ap-southeast-1" }, + ], }, ], }, @@ -275,6 +297,14 @@ export const anthropicModels = [ vision: false, tools: true, jsonOutputSchema: true, + regions: [ + { id: "us-east-1" }, + { id: "us-west-2" }, + { id: "eu-west-1" }, + { id: "eu-central-1" }, + { id: "ap-northeast-1" }, + { id: "ap-southeast-1" }, + ], }, ], }, @@ -324,6 +354,14 @@ export const anthropicModels = [ vision: false, tools: true, jsonOutputSchema: true, + regions: [ + { id: "us-east-1" }, + { id: "us-west-2" }, + { id: "eu-west-1" }, + { id: "eu-central-1" }, + { id: "ap-northeast-1" }, + { id: "ap-southeast-1" }, + ], }, ], }, @@ -371,6 +409,14 @@ export const anthropicModels = [ vision: true, tools: true, jsonOutputSchema: true, + regions: [ + { id: "us-east-1" }, + { id: "us-west-2" }, + { id: "eu-west-1" }, + { id: "eu-central-1" }, + { id: "ap-northeast-1" }, + { id: "ap-southeast-1" }, + ], }, { test: "skip", @@ -434,6 +480,14 @@ export const anthropicModels = [ tools: true, jsonOutput: true, jsonOutputSchema: true, + regions: [ + { id: "us-east-1" }, + { id: "us-west-2" }, + { id: "eu-west-1" }, + { id: "eu-central-1" }, + { id: "ap-northeast-1" }, + { id: "ap-southeast-1" }, + ], }, ], }, @@ -479,6 +533,14 @@ export const anthropicModels = [ tools: true, jsonOutput: true, jsonOutputSchema: true, + regions: [ + { id: "us-east-1" }, + { id: "us-west-2" }, + { id: "eu-west-1" }, + { id: "eu-central-1" }, + { id: "ap-northeast-1" }, + { id: "ap-southeast-1" }, + ], }, ], }, @@ -528,6 +590,7 @@ export const anthropicModels = [ vision: false, tools: true, jsonOutputSchema: true, + regions: [{ id: "us-east-1" }, { id: "us-west-2" }], }, ], }, @@ -576,6 +639,7 @@ export const anthropicModels = [ reasoningMaxTokens: true, tools: true, jsonOutputSchema: true, + regions: [{ id: "us-east-1" }, { id: "us-west-2" }], }, ], }, @@ -675,6 +739,7 @@ export const anthropicModels = [ vision: false, tools: true, jsonOutputSchema: true, + regions: [{ id: "us-east-1" }, { id: "us-west-2" }], }, ], }, @@ -801,6 +866,14 @@ export const anthropicModels = [ vision: true, tools: true, jsonOutputSchema: true, + regions: [ + { id: "us-east-1" }, + { id: "us-west-2" }, + { id: "eu-west-1" }, + { id: "eu-central-1" }, + { id: "ap-northeast-1" }, + { id: "ap-southeast-1" }, + ], }, { test: "skip", @@ -885,6 +958,14 @@ export const anthropicModels = [ vision: true, tools: true, jsonOutputSchema: true, + regions: [ + { id: "us-east-1" }, + { id: "us-west-2" }, + { id: "eu-west-1" }, + { id: "eu-central-1" }, + { id: "ap-northeast-1" }, + { id: "ap-southeast-1" }, + ], }, ], }, diff --git a/packages/models/src/models/meta.ts b/packages/models/src/models/meta.ts index 4051e12d42..3ce5fd726f 100644 --- a/packages/models/src/models/meta.ts +++ b/packages/models/src/models/meta.ts @@ -21,6 +21,11 @@ export const metaModels = [ vision: false, tools: false, jsonOutput: false, + regions: [ + { id: "us-east-1" }, + { id: "us-east-2" }, + { id: "us-west-2" }, + ], }, { providerId: "nebius", @@ -120,6 +125,11 @@ export const metaModels = [ vision: false, tools: false, jsonOutput: false, + regions: [ + { id: "us-east-1" }, + { id: "us-east-2" }, + { id: "us-west-2" }, + ], }, ], }, @@ -351,6 +361,12 @@ export const metaModels = [ vision: true, tools: false, jsonOutput: false, + regions: [ + { id: "us-east-1" }, + { id: "us-east-2" }, + { id: "us-west-1" }, + { id: "us-west-2" }, + ], }, { stability: "unstable", @@ -389,6 +405,12 @@ export const metaModels = [ vision: true, tools: false, jsonOutput: false, + regions: [ + { id: "us-east-1" }, + { id: "us-east-2" }, + { id: "us-west-1" }, + { id: "us-west-2" }, + ], }, { providerId: "novita", diff --git a/packages/models/src/models/moonshot.ts b/packages/models/src/models/moonshot.ts index 8f93222686..c628c60921 100644 --- a/packages/models/src/models/moonshot.ts +++ b/packages/models/src/models/moonshot.ts @@ -71,6 +71,8 @@ export const moonshotModels = [ { providerId: "nebius", modelName: "moonshotai/Kimi-K2-Instruct", + // Model removed from Nebius API; only Kimi-K2.5 is available + deactivatedAt: new Date("2026-04-14"), inputPrice: 0.5 / 1e6, outputPrice: 2.4 / 1e6, requestPrice: 0, diff --git a/packages/models/src/models/xai.ts b/packages/models/src/models/xai.ts index f7737e6353..00776777d9 100644 --- a/packages/models/src/models/xai.ts +++ b/packages/models/src/models/xai.ts @@ -192,6 +192,8 @@ export const xaiModels = [ { providerId: "xai", modelName: "grok-4", + // Model no longer listed in xAI docs; superseded by grok-4-1 and grok-4.20 variants + deactivatedAt: new Date("2026-04-15"), inputPrice: 3.0 / 1e6, outputPrice: 15.0 / 1e6, requestPrice: 0, @@ -216,6 +218,8 @@ export const xaiModels = [ { providerId: "xai", modelName: "grok-4-fast-reasoning", + // Model no longer listed in xAI docs; superseded by grok-4-1-fast-reasoning + deactivatedAt: new Date("2026-04-15"), inputPrice: 0.2 / 1e6, outputPrice: 0.5 / 1e6, pricingTiers: [ @@ -256,6 +260,8 @@ export const xaiModels = [ { providerId: "xai", modelName: "grok-4-fast-non-reasoning", + // Model no longer listed in xAI docs; superseded by grok-4-1-fast-non-reasoning + deactivatedAt: new Date("2026-04-15"), inputPrice: 0.2 / 1e6, outputPrice: 0.5 / 1e6, pricingTiers: [ @@ -400,6 +406,8 @@ export const xaiModels = [ { providerId: "xai", modelName: "grok-4-fast-non-reasoning", + // Model no longer listed in xAI docs; superseded by grok-4-1-fast variants + deactivatedAt: new Date("2026-04-15"), inputPrice: 0.2 / 1e6, outputPrice: 0.5 / 1e6, pricingTiers: [ @@ -431,6 +439,8 @@ export const xaiModels = [ { providerId: "xai", modelName: "grok-4-fast-reasoning", + // Model no longer listed in xAI docs; superseded by grok-4-1-fast variants + deactivatedAt: new Date("2026-04-15"), inputPrice: 0.2 / 1e6, outputPrice: 0.5 / 1e6, pricingTiers: [ @@ -589,7 +599,7 @@ export const xaiModels = [ providers: [ { providerId: "xai", - modelName: "grok-4.20-beta-0309-reasoning", + modelName: "grok-4.20-0309-reasoning", inputPrice: 2.0 / 1e6, outputPrice: 6.0 / 1e6, pricingTiers: [ @@ -628,7 +638,7 @@ export const xaiModels = [ providers: [ { providerId: "xai", - modelName: "grok-4.20-beta-0309-non-reasoning", + modelName: "grok-4.20-0309-non-reasoning", inputPrice: 2.0 / 1e6, outputPrice: 6.0 / 1e6, pricingTiers: [ diff --git a/packages/models/src/providers.ts b/packages/models/src/providers.ts index 212bee487c..d50427bb9c 100644 --- a/packages/models/src/providers.ts +++ b/packages/models/src/providers.ts @@ -348,6 +348,32 @@ export const providers = [ apiKeyInstructions: "Use AWS Bedrock Long-Term API Keys (not IAM service account or private keys)", learnMore: "https://docs.llmgateway.io/integrations/aws-bedrock", + regionConfig: { + optionsKey: "aws_bedrock_region", + defaultRegion: "us-east-1", + regions: [ + { id: "us-east-1", label: "US East (N. Virginia, default)" }, + { id: "us-east-2", label: "US East (Ohio)" }, + { id: "us-west-1", label: "US West (N. California)" }, + { id: "us-west-2", label: "US West (Oregon)" }, + { id: "eu-west-1", label: "Europe (Ireland)" }, + { id: "eu-central-1", label: "Europe (Frankfurt)" }, + { id: "ap-northeast-1", label: "Asia Pacific (Tokyo)" }, + { id: "ap-southeast-1", label: "Asia Pacific (Singapore)" }, + ], + endpointMap: { + "us-east-1": "https://bedrock-runtime.us-east-1.amazonaws.com", + "us-east-2": "https://bedrock-runtime.us-east-2.amazonaws.com", + "us-west-1": "https://bedrock-runtime.us-west-1.amazonaws.com", + "us-west-2": "https://bedrock-runtime.us-west-2.amazonaws.com", + "eu-west-1": "https://bedrock-runtime.eu-west-1.amazonaws.com", + "eu-central-1": "https://bedrock-runtime.eu-central-1.amazonaws.com", + "ap-northeast-1": + "https://bedrock-runtime.ap-northeast-1.amazonaws.com", + "ap-southeast-1": + "https://bedrock-runtime.ap-southeast-1.amazonaws.com", + }, + }, }, { id: "azure", diff --git a/packages/models/src/region-helpers.spec.ts b/packages/models/src/region-helpers.spec.ts new file mode 100644 index 0000000000..30b49eb49b --- /dev/null +++ b/packages/models/src/region-helpers.spec.ts @@ -0,0 +1,145 @@ +import { describe, expect, it } from "vitest"; + +import { + expandAllProviderRegions, + expandProviderRegions, + stripRegionFromModelName, +} from "./region-helpers.js"; + +import type { ProviderModelMapping } from "./models.js"; + +describe("stripRegionFromModelName", () => { + it("strips region suffix when it matches", () => { + expect( + stripRegionFromModelName("deepseek-v3.2:singapore", "singapore"), + ).toBe("deepseek-v3.2"); + }); + + it("strips aws-bedrock region suffix", () => { + expect( + stripRegionFromModelName( + "anthropic.claude-sonnet-4-5-20250929-v1:0:us-east-1", + "us-east-1", + ), + ).toBe("anthropic.claude-sonnet-4-5-20250929-v1:0"); + }); + + it("returns model name unchanged when no region provided", () => { + expect(stripRegionFromModelName("deepseek-v3.2:singapore")).toBe( + "deepseek-v3.2:singapore", + ); + }); + + it("returns model name unchanged when region does not match suffix", () => { + expect( + stripRegionFromModelName("deepseek-v3.2:singapore", "us-east-1"), + ).toBe("deepseek-v3.2:singapore"); + }); + + it("returns model name unchanged when it has no colon", () => { + expect(stripRegionFromModelName("gpt-4", "us-east-1")).toBe("gpt-4"); + }); +}); + +describe("expandProviderRegions", () => { + it("returns mapping as-is when no regions defined", () => { + const mapping = { + providerId: "openai", + modelName: "gpt-4", + inputPrice: 10 / 1e6, + outputPrice: 30 / 1e6, + } as unknown as ProviderModelMapping; + + const result = expandProviderRegions(mapping); + expect(result).toHaveLength(1); + expect(result[0].modelName).toBe("gpt-4"); + }); + + it("expands regions into separate entries with :region suffix", () => { + const mapping = { + providerId: "aws-bedrock", + modelName: "anthropic.claude-v1:0", + inputPrice: 3.0 / 1e6, + outputPrice: 15.0 / 1e6, + regions: [{ id: "us-east-1" }, { id: "eu-west-1" }], + } as unknown as ProviderModelMapping; + + const result = expandProviderRegions(mapping); + // 1 synthetic root + 2 region entries + expect(result).toHaveLength(3); + expect(result[0].modelName).toBe("anthropic.claude-v1:0"); + expect(result[0].region).toBeUndefined(); + expect(result[1].modelName).toBe("anthropic.claude-v1:0:us-east-1"); + expect(result[1].region).toBe("us-east-1"); + expect(result[2].modelName).toBe("anthropic.claude-v1:0:eu-west-1"); + expect(result[2].region).toBe("eu-west-1"); + }); + + it("applies region-specific pricing overrides", () => { + const mapping = { + providerId: "alibaba", + modelName: "qwen-plus", + inputPrice: 0.4 / 1e6, + outputPrice: 1.6 / 1e6, + regions: [ + { id: "singapore" }, + { id: "cn-beijing", inputPrice: 0.115 / 1e6, outputPrice: 0.46 / 1e6 }, + ], + } as unknown as ProviderModelMapping; + + const result = expandProviderRegions(mapping); + expect(result).toHaveLength(3); + + // Singapore inherits parent pricing + const singapore = result.find((r) => r.region === "singapore"); + expect(singapore?.inputPrice).toBe(0.4 / 1e6); + expect(singapore?.outputPrice).toBe(1.6 / 1e6); + + // Beijing overrides pricing + const beijing = result.find((r) => r.region === "cn-beijing"); + expect(beijing?.inputPrice).toBe(0.115 / 1e6); + expect(beijing?.outputPrice).toBe(0.46 / 1e6); + }); + + it("handles empty regions array", () => { + const mapping = { + providerId: "aws-bedrock", + modelName: "anthropic.claude-v1:0", + inputPrice: 3.0 / 1e6, + outputPrice: 15.0 / 1e6, + regions: [], + } as unknown as ProviderModelMapping; + + const result = expandProviderRegions(mapping); + expect(result).toHaveLength(1); + expect(result[0].modelName).toBe("anthropic.claude-v1:0"); + }); +}); + +describe("expandAllProviderRegions", () => { + it("expands all providers with regions in a model", () => { + const providers = [ + { + providerId: "openai", + modelName: "gpt-4", + inputPrice: 10 / 1e6, + outputPrice: 30 / 1e6, + }, + { + providerId: "aws-bedrock", + modelName: "anthropic.claude-v1:0", + inputPrice: 3.0 / 1e6, + outputPrice: 15.0 / 1e6, + regions: [{ id: "us-east-1" }, { id: "us-west-2" }], + }, + ] as unknown as ProviderModelMapping[]; + + const result = expandAllProviderRegions(providers); + // 1 (openai, no regions) + 1 (root) + 2 (region entries) = 4 + expect(result).toHaveLength(4); + expect(result.filter((r) => r.providerId === "openai")).toHaveLength(1); + expect(result.filter((r) => r.providerId === "aws-bedrock")).toHaveLength( + 3, + ); + }); +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 219c4d350a..6347a47e48 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -124,7 +124,7 @@ importers: dependencies: '@better-auth/passkey': specifier: 1.5.5 - version: 1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.75))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0))(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-auth@1.5.5(better-sqlite3@12.6.0)(drizzle-orm@1.0.0-beta.1-fd5d1e8(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.6.0)(gel@2.1.0)(kysely@0.28.12)(pg@8.16.3)(sql.js@1.13.0))(mongodb@7.1.0)(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)))(better-call@1.3.2(zod@3.25.75))(nanostores@1.2.0) + version: 1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.75))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0))(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-auth@1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)))(better-call@1.3.2(zod@3.25.75))(nanostores@1.2.0) '@hono/node-server': specifier: ^1.19.13 version: 1.19.13(hono@4.12.7) @@ -139,7 +139,7 @@ importers: version: 0.7.2(hono@4.12.7)(zod@3.25.75) '@kubiks/otel-better-auth': specifier: 2.0.2 - version: 2.0.2(@opentelemetry/api@1.9.0)(better-auth@1.5.5(better-sqlite3@12.6.0)(drizzle-orm@1.0.0-beta.1-fd5d1e8(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.6.0)(gel@2.1.0)(kysely@0.28.12)(pg@8.16.3)(sql.js@1.13.0))(mongodb@7.1.0)(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1))) + version: 2.0.2(@opentelemetry/api@1.9.0)(better-auth@1.5.5(better-sqlite3@12.6.0)(drizzle-orm@1.0.0-beta.1-fd5d1e8(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.6.0)(gel@2.1.0)(kysely@0.28.12)(pg@8.16.3)(sql.js@1.13.0))(mongodb@7.1.0)(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1))) '@llmgateway/actions': specifier: workspace:* version: link:../../packages/actions @@ -181,7 +181,7 @@ importers: version: 8.0.0 better-auth: specifier: 1.5.5 - version: 1.5.5(better-sqlite3@12.6.0)(drizzle-orm@1.0.0-beta.1-fd5d1e8(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.6.0)(gel@2.1.0)(kysely@0.28.12)(pg@8.16.3)(sql.js@1.13.0))(mongodb@7.1.0)(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)) + version: 1.5.5(better-sqlite3@12.6.0)(drizzle-orm@1.0.0-beta.1-fd5d1e8(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.6.0)(gel@2.1.0)(kysely@0.28.12)(pg@8.16.3)(sql.js@1.13.0))(mongodb@7.1.0)(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)) disposable-email-domains-js: specifier: 1.20.0 version: 1.20.0 @@ -229,7 +229,7 @@ importers: dependencies: '@better-auth/passkey': specifier: 1.5.5 - version: 1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.76))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0))(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-auth@1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)))(better-call@1.3.2(zod@3.25.76))(nanostores@1.2.0) + version: 1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.76))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0))(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-auth@1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)))(better-call@1.3.2(zod@3.25.76))(nanostores@1.2.0) '@hookform/resolvers': specifier: 5.2.2 version: 5.2.2(react-hook-form@7.65.0(react@19.2.5))(zod@3.25.76) @@ -286,7 +286,7 @@ importers: version: 1.0.0 better-auth: specifier: 1.5.5 - version: 1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)) + version: 1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)) class-variance-authority: specifier: 0.7.1 version: 0.7.1 @@ -386,16 +386,16 @@ importers: version: 0.7.1 fumadocs-core: specifier: 16.7.10 - version: 16.7.10(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.544.0(react@19.2.5))(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6) + version: 16.7.10(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.544.0(react@19.2.5))(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6) fumadocs-mdx: specifier: 13.0.8 - version: 13.0.8(fumadocs-core@16.7.10(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.544.0(react@19.2.5))(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6))(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)(vite@7.1.11(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)) + version: 13.0.8(fumadocs-core@16.7.10(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.544.0(react@19.2.5))(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6))(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)(vite@7.1.11(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)) fumadocs-openapi: specifier: 10.6.6 - version: 10.6.6(aea6ff7c084c185ecbd4835b266d43bd) + version: 10.6.6(8c39e5a8505b160f8e8fc5d2897135e3) fumadocs-ui: specifier: 16.7.10 - version: 16.7.10(@types/mdx@2.0.13)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.7.10(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.544.0(react@19.2.5))(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6))(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(shiki@3.22.0)(tailwindcss@4.1.16) + version: 16.7.10(@types/mdx@2.0.13)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.7.10(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.544.0(react@19.2.5))(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6))(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(shiki@3.22.0)(tailwindcss@4.1.16) gateway: specifier: workspace:* version: link:../gateway @@ -543,7 +543,7 @@ importers: version: 3.0.29(react@19.2.5)(zod@3.25.76) '@better-auth/passkey': specifier: 1.5.5 - version: 1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.76))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0))(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-auth@1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)))(better-call@1.3.2(zod@3.25.76))(nanostores@1.2.0) + version: 1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.76))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0))(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-auth@1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)))(better-call@1.3.2(zod@3.25.76))(nanostores@1.2.0) '@hookform/resolvers': specifier: 5.2.2 version: 5.2.2(react-hook-form@7.65.0(react@19.2.5))(zod@3.25.76) @@ -642,7 +642,7 @@ importers: version: 1.0.0 better-auth: specifier: 1.5.5 - version: 1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)) + version: 1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)) class-variance-authority: specifier: 0.7.1 version: 0.7.1 @@ -772,13 +772,13 @@ importers: version: 3.0.29(react@19.2.5)(zod@3.25.75) '@better-auth/passkey': specifier: 1.5.5 - version: 1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.75))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0))(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-auth@1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)))(better-call@1.3.2(zod@3.25.75))(nanostores@1.2.0) + version: 1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.75))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0))(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-auth@1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)))(better-call@1.3.2(zod@3.25.75))(nanostores@1.2.0) '@content-collections/core': specifier: 0.11.1 version: 0.11.1(typescript@5.9.3) '@content-collections/next': specifier: 0.2.9 - version: 0.2.9(@content-collections/core@0.11.1(typescript@5.9.3))(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + version: 0.2.9(@content-collections/core@0.11.1(typescript@5.9.3))(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) '@hookform/resolvers': specifier: 5.2.2 version: 5.2.2(react-hook-form@7.65.0(react@19.2.5))(zod@3.25.75) @@ -892,7 +892,10 @@ importers: version: 1.0.0 better-auth: specifier: 1.5.5 - version: 1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)) + version: 1.5.5(better-sqlite3@12.6.0)(drizzle-orm@1.0.0-beta.1-fd5d1e8(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.6.0)(gel@2.1.0)(kysely@0.28.12)(pg@8.16.3)(sql.js@1.13.0))(mongodb@7.1.0)(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)) + canvas-confetti: + specifier: 1.9.4 + version: 1.9.4 class-variance-authority: specifier: 0.7.1 version: 0.7.1 @@ -987,6 +990,9 @@ importers: '@tanstack/react-query-devtools': specifier: 5.90.2 version: 5.90.2(@tanstack/react-query@5.90.5(react@19.2.5))(react@19.2.5) + '@types/canvas-confetti': + specifier: 1.9.0 + version: 1.9.0 '@types/react': specifier: ^19.2.14 version: 19.2.14 @@ -1121,7 +1127,7 @@ importers: version: 1.0.0 better-auth: specifier: 1.5.5 - version: 1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)) + version: 1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)) class-variance-authority: specifier: 0.7.1 version: 0.7.1 @@ -11296,7 +11302,7 @@ snapshots: '@babel/types': 7.28.5 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -11370,7 +11376,7 @@ snapshots: '@babel/parser': 7.28.5 '@babel/template': 7.27.2 '@babel/types': 7.28.5 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -11401,11 +11407,6 @@ snapshots: nanostores: 1.2.0 zod: 4.3.6 - '@better-auth/drizzle-adapter@1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.75))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0))(@better-auth/utils@0.3.1)': - dependencies: - '@better-auth/core': 1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.75))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0) - '@better-auth/utils': 0.3.1 - '@better-auth/drizzle-adapter@1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.75))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0))(@better-auth/utils@0.3.1)(drizzle-orm@1.0.0-beta.1-fd5d1e8(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.6.0)(gel@2.1.0)(kysely@0.28.12)(pg@8.16.3)(sql.js@1.13.0))': dependencies: '@better-auth/core': 1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.75))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0) @@ -11452,38 +11453,26 @@ snapshots: '@better-auth/utils': 0.3.1 mongodb: 7.1.0 - '@better-auth/passkey@1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.75))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0))(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-auth@1.5.5(better-sqlite3@12.6.0)(drizzle-orm@1.0.0-beta.1-fd5d1e8(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.6.0)(gel@2.1.0)(kysely@0.28.12)(pg@8.16.3)(sql.js@1.13.0))(mongodb@7.1.0)(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)))(better-call@1.3.2(zod@3.25.75))(nanostores@1.2.0)': + '@better-auth/passkey@1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.75))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0))(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-auth@1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)))(better-call@1.3.2(zod@3.25.75))(nanostores@1.2.0)': dependencies: '@better-auth/core': 1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.75))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0) '@better-auth/utils': 0.3.1 '@better-fetch/fetch': 1.1.21 '@simplewebauthn/browser': 13.2.2 '@simplewebauthn/server': 13.3.0 - better-auth: 1.5.5(better-sqlite3@12.6.0)(drizzle-orm@1.0.0-beta.1-fd5d1e8(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.6.0)(gel@2.1.0)(kysely@0.28.12)(pg@8.16.3)(sql.js@1.13.0))(mongodb@7.1.0)(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)) + better-auth: 1.5.5(better-sqlite3@12.6.0)(drizzle-orm@1.0.0-beta.1-fd5d1e8(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.6.0)(gel@2.1.0)(kysely@0.28.12)(pg@8.16.3)(sql.js@1.13.0))(mongodb@7.1.0)(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)) better-call: 1.3.2(zod@3.25.75) nanostores: 1.2.0 zod: 4.3.6 - '@better-auth/passkey@1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.75))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0))(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-auth@1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)))(better-call@1.3.2(zod@3.25.75))(nanostores@1.2.0)': - dependencies: - '@better-auth/core': 1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.75))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0) - '@better-auth/utils': 0.3.1 - '@better-fetch/fetch': 1.1.21 - '@simplewebauthn/browser': 13.2.2 - '@simplewebauthn/server': 13.3.0 - better-auth: 1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)) - better-call: 1.3.2(zod@3.25.75) - nanostores: 1.2.0 - zod: 4.3.6 - - '@better-auth/passkey@1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.76))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0))(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-auth@1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)))(better-call@1.3.2(zod@3.25.76))(nanostores@1.2.0)': + '@better-auth/passkey@1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.76))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0))(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-auth@1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)))(better-call@1.3.2(zod@3.25.76))(nanostores@1.2.0)': dependencies: '@better-auth/core': 1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.76))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0) '@better-auth/utils': 0.3.1 '@better-fetch/fetch': 1.1.21 '@simplewebauthn/browser': 13.2.2 '@simplewebauthn/server': 13.3.0 - better-auth: 1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)) + better-auth: 1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)) better-call: 1.3.2(zod@3.25.76) nanostores: 1.2.0 zod: 4.3.6 @@ -11670,7 +11659,7 @@ snapshots: dependencies: '@content-collections/core': 0.11.1(typescript@5.9.3) - '@content-collections/next@0.2.9(@content-collections/core@0.11.1(typescript@5.9.3))(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': + '@content-collections/next@0.2.9(@content-collections/core@0.11.1(typescript@5.9.3))(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': dependencies: '@content-collections/core': 0.11.1(typescript@5.9.3) '@content-collections/integrations': 0.3.0(@content-collections/core@0.11.1(typescript@5.9.3)) @@ -11863,7 +11852,7 @@ snapshots: '@eslint/config-array@0.21.1': dependencies: '@eslint/object-schema': 2.1.7 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -11884,7 +11873,7 @@ snapshots: '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 @@ -12229,10 +12218,10 @@ snapshots: dependencies: jsbi: 4.3.2 - '@kubiks/otel-better-auth@2.0.2(@opentelemetry/api@1.9.0)(better-auth@1.5.5(better-sqlite3@12.6.0)(drizzle-orm@1.0.0-beta.1-fd5d1e8(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.6.0)(gel@2.1.0)(kysely@0.28.12)(pg@8.16.3)(sql.js@1.13.0))(mongodb@7.1.0)(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)))': + '@kubiks/otel-better-auth@2.0.2(@opentelemetry/api@1.9.0)(better-auth@1.5.5(better-sqlite3@12.6.0)(drizzle-orm@1.0.0-beta.1-fd5d1e8(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.6.0)(gel@2.1.0)(kysely@0.28.12)(pg@8.16.3)(sql.js@1.13.0))(mongodb@7.1.0)(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)))': dependencies: '@opentelemetry/api': 1.9.0 - better-auth: 1.5.5(better-sqlite3@12.6.0)(drizzle-orm@1.0.0-beta.1-fd5d1e8(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.6.0)(gel@2.1.0)(kysely@0.28.12)(pg@8.16.3)(sql.js@1.13.0))(mongodb@7.1.0)(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)) + better-auth: 1.5.5(better-sqlite3@12.6.0)(drizzle-orm@1.0.0-beta.1-fd5d1e8(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.6.0)(gel@2.1.0)(kysely@0.28.12)(pg@8.16.3)(sql.js@1.13.0))(mongodb@7.1.0)(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)) '@kubiks/otel-drizzle@2.0.3(@opentelemetry/api@1.9.0)(drizzle-orm@1.0.0-beta.1(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/mssql@9.1.8(@azure/core-client@1.10.1))(@types/pg@8.15.5)(better-sqlite3@12.6.0)(gel@2.1.0)(mssql@11.0.1(@azure/core-client@1.10.1))(pg@8.16.3)(sql.js@1.13.0))': dependencies: @@ -14605,7 +14594,7 @@ snapshots: conventional-changelog-writer: 8.2.0 conventional-commits-filter: 5.0.0 conventional-commits-parser: 6.2.1 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) import-from-esm: 2.0.0 lodash-es: 4.17.21 micromatch: 4.0.8 @@ -14619,7 +14608,7 @@ snapshots: dependencies: '@semantic-release/error': 4.0.0 aggregate-error: 3.1.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) execa: 9.6.1 lodash-es: 4.17.21 parse-json: 8.3.0 @@ -14635,7 +14624,7 @@ snapshots: '@octokit/plugin-throttling': 11.0.3(@octokit/core@7.0.6) '@semantic-release/error': 4.0.0 aggregate-error: 5.0.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) dir-glob: 3.0.1 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -14672,7 +14661,7 @@ snapshots: conventional-changelog-writer: 8.2.0 conventional-commits-filter: 5.0.0 conventional-commits-parser: 6.2.1 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) get-stream: 7.0.1 import-from-esm: 2.0.0 into-stream: 7.0.0 @@ -15320,7 +15309,7 @@ snapshots: '@typescript-eslint/types': 8.46.2 '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.46.2 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) eslint: 9.38.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: @@ -15332,7 +15321,7 @@ snapshots: '@typescript-eslint/types': 8.56.0 '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.2) '@typescript-eslint/visitor-keys': 8.56.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) eslint: 9.38.0(jiti@2.6.1) typescript: 5.9.2 transitivePeerDependencies: @@ -15342,7 +15331,7 @@ snapshots: dependencies: '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.9.3) '@typescript-eslint/types': 8.46.2 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -15351,7 +15340,7 @@ snapshots: dependencies: '@typescript-eslint/tsconfig-utils': 8.56.0(typescript@5.9.2) '@typescript-eslint/types': 8.56.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) typescript: 5.9.2 transitivePeerDependencies: - supports-color @@ -15379,7 +15368,7 @@ snapshots: '@typescript-eslint/types': 8.46.2 '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3) '@typescript-eslint/utils': 8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) eslint: 9.38.0(jiti@2.6.1) ts-api-utils: 2.1.0(typescript@5.9.3) typescript: 5.9.3 @@ -15391,7 +15380,7 @@ snapshots: '@typescript-eslint/types': 8.56.0 '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.2) '@typescript-eslint/utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.2) - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) eslint: 9.38.0(jiti@2.6.1) ts-api-utils: 2.4.0(typescript@5.9.2) typescript: 5.9.2 @@ -15408,7 +15397,7 @@ snapshots: '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.9.3) '@typescript-eslint/types': 8.46.2 '@typescript-eslint/visitor-keys': 8.46.2 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 @@ -15424,7 +15413,7 @@ snapshots: '@typescript-eslint/tsconfig-utils': 8.56.0(typescript@5.9.2) '@typescript-eslint/types': 8.56.0 '@typescript-eslint/visitor-keys': 8.56.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) minimatch: 9.0.5 semver: 7.7.4 tinyglobby: 0.2.15 @@ -15613,7 +15602,7 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -15847,7 +15836,7 @@ snapshots: before-after-hook@4.0.0: {} - better-auth@1.5.5(better-sqlite3@12.6.0)(drizzle-orm@1.0.0-beta.1-fd5d1e8(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.6.0)(gel@2.1.0)(kysely@0.28.12)(pg@8.16.3)(sql.js@1.13.0))(mongodb@7.1.0)(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)): + better-auth@1.5.5(better-sqlite3@12.6.0)(drizzle-orm@1.0.0-beta.1-fd5d1e8(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.6.0)(gel@2.1.0)(kysely@0.28.12)(pg@8.16.3)(sql.js@1.13.0))(mongodb@7.1.0)(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)): dependencies: '@better-auth/core': 1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.75))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0) '@better-auth/drizzle-adapter': 1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.75))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0))(@better-auth/utils@0.3.1)(drizzle-orm@1.0.0-beta.1-fd5d1e8(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(better-sqlite3@12.6.0)(gel@2.1.0)(kysely@0.28.12)(pg@8.16.3)(sql.js@1.13.0)) @@ -15878,7 +15867,7 @@ snapshots: transitivePeerDependencies: - '@cloudflare/workers-types' - better-auth@1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)): + better-auth@1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)): dependencies: '@better-auth/core': 1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.76))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0) '@better-auth/drizzle-adapter': 1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.76))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0))(@better-auth/utils@0.3.1) @@ -15908,36 +15897,6 @@ snapshots: transitivePeerDependencies: - '@cloudflare/workers-types' - better-auth@1.5.5(better-sqlite3@12.6.0)(mongodb@7.1.0)(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(pg@8.16.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(vitest@4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)): - dependencies: - '@better-auth/core': 1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.75))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0) - '@better-auth/drizzle-adapter': 1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.75))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0))(@better-auth/utils@0.3.1) - '@better-auth/kysely-adapter': 1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.75))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0))(@better-auth/utils@0.3.1)(kysely@0.28.12) - '@better-auth/memory-adapter': 1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.75))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0))(@better-auth/utils@0.3.1) - '@better-auth/mongo-adapter': 1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.75))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0))(@better-auth/utils@0.3.1)(mongodb@7.1.0) - '@better-auth/prisma-adapter': 1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.75))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0))(@better-auth/utils@0.3.1) - '@better-auth/telemetry': 1.5.5(@better-auth/core@1.5.5(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-call@1.3.2(zod@3.25.75))(jose@6.1.3)(kysely@0.28.12)(nanostores@1.2.0)) - '@better-auth/utils': 0.3.1 - '@better-fetch/fetch': 1.1.21 - '@noble/ciphers': 2.1.1 - '@noble/hashes': 2.0.1 - better-call: 1.3.2(zod@4.3.6) - defu: 6.1.4 - jose: 6.1.3 - kysely: 0.28.12 - nanostores: 1.2.0 - zod: 4.3.6 - optionalDependencies: - better-sqlite3: 12.6.0 - mongodb: 7.1.0 - next: 16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - pg: 8.16.3 - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) - vitest: 4.0.5(@types/debug@4.1.12)(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1) - transitivePeerDependencies: - - '@cloudflare/workers-types' - better-call@1.3.2(zod@3.25.75): dependencies: '@better-auth/utils': 0.3.1 @@ -16002,7 +15961,7 @@ snapshots: dependencies: bytes: 3.1.2 content-type: 1.0.5 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) http-errors: 2.0.1 iconv-lite: 0.7.2 on-finished: 2.4.1 @@ -16640,10 +16599,6 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.4.3: - dependencies: - ms: 2.1.3 - debug@4.4.3(supports-color@10.2.2): dependencies: ms: 2.1.3 @@ -17021,7 +16976,7 @@ snapshots: esbuild-register@3.6.0(esbuild@0.25.12): dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) esbuild: 0.25.12 transitivePeerDependencies: - supports-color @@ -17070,7 +17025,7 @@ snapshots: '@next/eslint-plugin-next': 16.0.0 eslint: 9.38.0(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.38.0(jiti@2.6.1)) eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.38.0(jiti@2.6.1)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.38.0(jiti@2.6.1)) eslint-plugin-react: 7.37.5(eslint@9.38.0(jiti@2.6.1)) @@ -17090,7 +17045,7 @@ snapshots: '@next/eslint-plugin-next': 16.0.0 eslint: 9.38.0(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.2))(eslint-import-resolver-typescript@4.4.4)(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.38.0(jiti@2.6.1)) eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.38.0(jiti@2.6.1)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.38.0(jiti@2.6.1)) eslint-plugin-react: 7.37.5(eslint@9.38.0(jiti@2.6.1)) @@ -17120,10 +17075,10 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.38.0(jiti@2.6.1)): dependencies: '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) eslint: 9.38.0(jiti@2.6.1) get-tsconfig: 4.13.0 is-bun-module: 2.0.0 @@ -17135,24 +17090,9 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.2))(eslint-import-resolver-typescript@4.4.4)(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)): - dependencies: - '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.3 - eslint: 9.38.0(jiti@2.6.1) - get-tsconfig: 4.13.0 - is-bun-module: 2.0.0 - stable-hash: 0.0.5 - tinyglobby: 0.2.15 - unrs-resolver: 1.11.1 - optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.2))(eslint-import-resolver-typescript@4.4.4)(eslint@9.38.0(jiti@2.6.1)) - transitivePeerDependencies: - - supports-color - eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.38.0(jiti@2.6.1)): dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) eslint: 9.38.0(jiti@2.6.1) eslint-import-context: 0.1.9(unrs-resolver@1.11.1) get-tsconfig: 4.13.0 @@ -17165,25 +17105,25 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.38.0(jiti@2.6.1)): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) eslint: 9.38.0(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)) + eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.38.0(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.2))(eslint-import-resolver-typescript@4.4.4)(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.38.0(jiti@2.6.1)): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.2) eslint: 9.38.0(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.2))(eslint-import-resolver-typescript@4.4.4)(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.38.0(jiti@2.6.1)) transitivePeerDependencies: - supports-color @@ -17222,7 +17162,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.38.0(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.38.0(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -17251,7 +17191,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.38.0(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.2))(eslint-import-resolver-typescript@4.4.4)(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.38.0(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -17489,7 +17429,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -17657,7 +17597,7 @@ snapshots: content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) depd: 2.0.0 encodeurl: 2.0.0 escape-html: 1.0.3 @@ -17791,7 +17731,7 @@ snapshots: finalhandler@2.1.1: dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 @@ -17917,7 +17857,7 @@ snapshots: fsevents@2.3.3: optional: true - fumadocs-core@16.7.10(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.544.0(react@19.2.5))(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6): + fumadocs-core@16.7.10(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.544.0(react@19.2.5))(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6): dependencies: '@formatjs/intl-localematcher': 0.8.2 '@orama/orama': 3.1.18 @@ -17956,14 +17896,14 @@ snapshots: transitivePeerDependencies: - supports-color - fumadocs-mdx@13.0.8(fumadocs-core@16.7.10(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.544.0(react@19.2.5))(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6))(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)(vite@7.1.11(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)): + fumadocs-mdx@13.0.8(fumadocs-core@16.7.10(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.544.0(react@19.2.5))(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6))(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)(vite@7.1.11(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)): dependencies: '@mdx-js/mdx': 3.1.1 '@standard-schema/spec': 1.1.0 chokidar: 4.0.3 esbuild: 0.25.12 estree-util-value-to-estree: 3.5.0 - fumadocs-core: 16.7.10(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.544.0(react@19.2.5))(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6) + fumadocs-core: 16.7.10(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.544.0(react@19.2.5))(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6) js-yaml: 4.1.0 lru-cache: 11.2.2 mdast-util-to-markdown: 2.1.2 @@ -17983,7 +17923,7 @@ snapshots: transitivePeerDependencies: - supports-color - fumadocs-openapi@10.6.6(aea6ff7c084c185ecbd4835b266d43bd): + fumadocs-openapi@10.6.6(8c39e5a8505b160f8e8fc5d2897135e3): dependencies: '@fastify/deepmerge': 3.2.1 '@fumari/json-schema-ts': 0.0.2(json-schema-typed@8.0.2) @@ -17997,8 +17937,8 @@ snapshots: ajv: 8.18.0 chokidar: 5.0.0 class-variance-authority: 0.7.1 - fumadocs-core: 16.7.10(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.544.0(react@19.2.5))(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6) - fumadocs-ui: 16.7.10(@types/mdx@2.0.13)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.7.10(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.544.0(react@19.2.5))(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6))(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(shiki@3.22.0)(tailwindcss@4.1.16) + fumadocs-core: 16.7.10(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.544.0(react@19.2.5))(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6) + fumadocs-ui: 16.7.10(@types/mdx@2.0.13)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.7.10(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.544.0(react@19.2.5))(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6))(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(shiki@3.22.0)(tailwindcss@4.1.16) github-slugger: 2.0.0 hast-util-to-jsx-runtime: 2.3.6 js-yaml: 4.1.1 @@ -18020,7 +17960,7 @@ snapshots: - '@types/react-dom' - supports-color - fumadocs-ui@16.7.10(@types/mdx@2.0.13)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.7.10(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.544.0(react@19.2.5))(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6))(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(shiki@3.22.0)(tailwindcss@4.1.16): + fumadocs-ui@16.7.10(@types/mdx@2.0.13)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.7.10(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.544.0(react@19.2.5))(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6))(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(shiki@3.22.0)(tailwindcss@4.1.16): dependencies: '@fumadocs/tailwind': 0.0.3(tailwindcss@4.1.16) '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) @@ -18034,7 +17974,7 @@ snapshots: '@radix-ui/react-slot': 1.2.4(@types/react@19.2.14)(react@19.2.5) '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) class-variance-authority: 0.7.1 - fumadocs-core: 16.7.10(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.544.0(react@19.2.5))(next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6) + fumadocs-core: 16.7.10(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.544.0(react@19.2.5))(next@16.2.3(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6) lucide-react: 1.7.0(react@19.2.5) motion: 12.38.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) next-themes: 0.4.6(react-dom@19.2.5(react@19.2.5))(react@19.2.5) @@ -18094,7 +18034,7 @@ snapshots: gel@2.1.0: dependencies: '@petamoriken/float16': 3.9.3 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) env-paths: 3.0.0 semver: 7.7.4 shell-quote: 1.8.3 @@ -18527,28 +18467,28 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) transitivePeerDependencies: - supports-color https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) transitivePeerDependencies: - supports-color https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -18596,7 +18536,7 @@ snapshots: import-from-esm@2.0.0: dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) import-meta-resolve: 4.1.0 transitivePeerDependencies: - supports-color @@ -18654,7 +18594,7 @@ snapshots: dependencies: '@ioredis/commands': 1.3.1 cluster-key-slot: 1.1.2 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) denque: 2.1.0 lodash.defaults: 4.2.0 lodash.isarguments: 3.1.0 @@ -19081,7 +19021,7 @@ snapshots: dependencies: chalk: 5.6.0 commander: 13.1.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) lilconfig: 3.1.3 listr2: 8.3.3 micromatch: 4.0.8 @@ -19749,7 +19689,7 @@ snapshots: micromark@4.0.2: dependencies: '@types/debug': 4.1.12 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) decode-named-character-reference: 1.2.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 @@ -19875,7 +19815,7 @@ snapshots: dependencies: '@tediousjs/connection-string': 0.5.0 commander: 11.1.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) rfdc: 1.4.1 tarn: 3.0.2 tedious: 18.6.2(@azure/core-client@1.10.1) @@ -21075,7 +21015,7 @@ snapshots: require-in-the-middle@7.5.2: dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) module-details-from-path: 1.0.4 resolve: 1.22.11 transitivePeerDependencies: @@ -21201,7 +21141,7 @@ snapshots: router@2.2.0: dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 @@ -21269,7 +21209,7 @@ snapshots: semantic-release-monorepo@8.0.2(semantic-release@24.2.9(typescript@5.9.2)): dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) execa: 5.1.1 file-url: 3.0.0 fs-extra: 10.1.0 @@ -21299,7 +21239,7 @@ snapshots: '@semantic-release/release-notes-generator': 14.1.0(semantic-release@24.2.9(typescript@5.9.2)) aggregate-error: 5.0.0 cosmiconfig: 9.0.0(typescript@5.9.2) - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) env-ci: 11.2.0 execa: 9.6.1 figures: 6.1.0 @@ -21341,7 +21281,7 @@ snapshots: send@1.2.1: dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -22423,7 +22363,7 @@ snapshots: vite-tsconfig-paths@5.1.4(typescript@5.9.2)(vite@7.1.11(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.40.0)(tsx@4.20.6)(yaml@2.8.1)): dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.9.2) optionalDependencies: @@ -22476,7 +22416,7 @@ snapshots: '@vitest/snapshot': 4.0.5 '@vitest/spy': 4.0.5 '@vitest/utils': 4.0.5 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) es-module-lexer: 1.7.0 expect-type: 1.2.2 magic-string: 0.30.21 @@ -22515,7 +22455,7 @@ snapshots: '@vitest/snapshot': 4.0.5 '@vitest/spy': 4.0.5 '@vitest/utils': 4.0.5 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) es-module-lexer: 1.7.0 expect-type: 1.2.2 magic-string: 0.30.21