From 4ffeda61addee6e4888df3aef0bd73bae6b93f11 Mon Sep 17 00:00:00 2001 From: SachaMorard <2254275+SachaMorard@users.noreply.github.com> Date: Mon, 9 Feb 2026 14:30:52 +0100 Subject: [PATCH] feat: anthropic messages endpoint --- api-reference/authentication.mdx | 22 +- api-reference/errors.mdx | 12 +- api-reference/index.mdx | 33 ++- api-reference/messages.mdx | 420 +++++++++++++++++++++++++++++++ api-reference/openapi.json | 340 ++++++++++++++++++++++++- docs.json | 7 +- package-lock.json | 123 ++++----- package.json | 2 +- 8 files changed, 884 insertions(+), 75 deletions(-) create mode 100644 api-reference/messages.mdx diff --git a/api-reference/authentication.mdx b/api-reference/authentication.mdx index bc41d73..25fbc29 100644 --- a/api-reference/authentication.mdx +++ b/api-reference/authentication.mdx @@ -30,15 +30,25 @@ will also fail. ```bash cURL with Bearer - curl 'https://api.edgee.ai/v1/projects' \ - -H 'Authorization: Bearer ' + curl 'https://api.edgee.ai/v1/chat/completions' \ + -H 'Authorization: Bearer ' \ + -H 'Content-Type: application/json' \ + -d '{ + "model": "openai/gpt-4o", + "messages": [{"role": "user", "content": "Hello"}] + }' ``` - + ```bash cURL with Basic Auth - curl 'https://api.edgee.ai/v1/projects' \ - -u ':' + curl 'https://api.edgee.ai/v1/chat/completions' \ + -u ':' \ + -H 'Content-Type: application/json' \ + -d '{ + "model": "openai/gpt-4o", + "messages": [{"role": "user", "content": "Hello"}] + }' # The colon prevents curl from asking for a password. ``` - + diff --git a/api-reference/errors.mdx b/api-reference/errors.mdx index abc6195..f256d49 100644 --- a/api-reference/errors.mdx +++ b/api-reference/errors.mdx @@ -53,10 +53,11 @@ Below is a summary of the HTTP status codes that Edgee API uses. One of the following error codes: - + - `bad_model_id`: The model ID format is invalid - `model_not_found`: The requested model does not exist or is not available - `provider_not_supported`: The requested provider is not supported for the specified model + - `streaming_not_supported`: Streaming is only supported when using Anthropic provider for Messages API @@ -86,6 +87,15 @@ Below is a summary of the HTTP status codes that Edgee API uses. } } ``` + +```json Streaming Not Supported +{ + "error": { + "code": "streaming_not_supported", + "message": "Streaming for Messages API is only supported when the model uses the Anthropic provider" + } +} +``` ### 401 Unauthorized diff --git a/api-reference/index.mdx b/api-reference/index.mdx index 72d73f6..4b62a8c 100644 --- a/api-reference/index.mdx +++ b/api-reference/index.mdx @@ -26,10 +26,39 @@ When an error occurs, the Edgee API responds with a conventional HTTP response c ## Rate Limiting -Please note that the Edgee has its own rate limit technology to prevent abuse and ensure service stability. -If you exceed these limits, your requests will be throttled and you will receive a `429 Too Many Requests` response. +Please note that the Edgee has its own rate limit technology to prevent abuse and ensure service stability. +If you exceed these limits, your requests will be throttled and you will receive a `429 Too Many Requests` response. Additionally, usage limits may be enforced based on your API key configuration. +## API Formats + +Edgee supports two API formats to accommodate different use cases and provider preferences: + + + + Use `/v1/chat/completions` for maximum flexibility. Works with all providers (OpenAI, Anthropic, Google, Meta, etc.). + + **Model format:** `provider/model` (e.g., `anthropic/claude-sonnet-4.5`) + + **Recommended for:** New integrations, multi-provider applications, and maximum flexibility. + + + + Use `/v1/messages` for native Anthropic Messages API format. Only works with Anthropic provider. + + **Model format:** `model` (e.g., `claude-sonnet-4.5`) + + **Recommended for:** Migrating from Anthropic's API, using Anthropic SDK, or requiring Anthropic-specific features. + + + +**Choose the format that best fits your needs:** + +- **For new projects**: Use the OpenAI format (`/v1/chat/completions`) for maximum flexibility and multi-provider support. +- **For Anthropic migrations**: Use the Anthropic format (`/v1/messages`) for seamless compatibility with existing code using Anthropic's SDK. + +Both formats provide the same underlying AI capabilities and support Edgee's features like token compression, edge tools, and observability. + ## Features diff --git a/api-reference/messages.mdx b/api-reference/messages.mdx new file mode 100644 index 0000000..cfa89cd --- /dev/null +++ b/api-reference/messages.mdx @@ -0,0 +1,420 @@ +--- +title: 'Anthropic Messages' +description: 'Create messages using Anthropic native API format' +openapi: 'POST /v1/messages' +--- + +Creates a message using Anthropic's native Messages API format. This endpoint provides the same API format as Anthropic's official API, making it easy to migrate existing integrations or use Anthropic-specific features. + + + This endpoint only works with the Anthropic provider. For multi-provider support, use the [Chat Completions](/api-reference/chat-completion) endpoint with OpenAI format. + + +## Overview + +The `/v1/messages` endpoint implements Anthropic's Messages API format, which differs from the OpenAI-compatible `/v1/chat/completions` endpoint in several key ways: + +- **Model format**: Use `claude-sonnet-4.5` instead of `anthropic/claude-sonnet-4.5` (no provider prefix) +- **Required max_tokens**: The `max_tokens` parameter is always required (not optional like OpenAI) +- **System prompt**: System messages use a separate `system` field instead of being part of the messages array +- **Response format**: Returns Anthropic's native response format with different structure and field names + +Use this endpoint when: +- Migrating from Anthropic's API to Edgee +- Using Anthropic SDK or tools that expect native Anthropic format +- Requiring Anthropic-specific features or response structures + +For new integrations or multi-provider support, we recommend using the [Chat Completions](/api-reference/chat-completion) endpoint instead. + +## Authentication + +This endpoint supports both authentication methods: + +**Anthropic-style (preferred):** +```bash +x-api-key: +``` + +**OpenAI-style (also supported):** +```bash +Authorization: Bearer +``` + +If both headers are provided, `x-api-key` takes precedence. + +See the [Authentication](/api-reference/authentication) page for more details. + +## Request Format + + + The model ID to use. Use Anthropic model names without provider prefix. + + Examples: `claude-sonnet-4.5`, `claude-opus-4`, `claude-haiku-4` + + + + The maximum number of tokens to generate before stopping. This parameter is required (unlike OpenAI's API where it's optional). + + Note that Claude models may stop before reaching this maximum if they hit a natural stopping point. + + + + Array of message objects representing the conversation history. Each message must have a `role` and `content`. + + + + The role of the message author. Must be either `user` or `assistant`. + + + + The content of the message. Can be either: + - A string for simple text messages + - An array of content blocks for structured content (text, tool_use, tool_result) + + + + + + System prompt to guide the model's behavior. This is separate from the messages array. + + Can be either: + - A simple string for basic system prompts + - An array of content blocks for structured system prompts (supports text blocks with cache_control) + + + + Whether to stream the response as Server-Sent Events (SSE). When enabled, partial message deltas are sent incrementally. + + Note: Streaming is only supported when using the Anthropic provider. Other providers will return an error. + + + + Definitions of tools the model can use. Each tool represents a function the model can call. + + + + The name of the tool. + + + + Description of what the tool does. + + + + JSON Schema object describing the tool's input parameters. + + + + + + Controls which tool the model should use. Can be: + - `{"type": "auto"}` - Model decides whether to use tools (default) + - `{"type": "any"}` - Model must use one of the provided tools + - `{"type": "tool", "name": "tool_name"}` - Model must use the specified tool + + +## Response Format + +### Non-Streaming Response + + + Unique identifier for this message. + + + + The model that was used to generate the response. + + + + Array of content blocks in the response. Each block has a `type` field indicating its type. + + Block types include: + - `text`: Text content from the model + - `tool_use`: Tool call made by the model (includes `id`, `name`, and `input` fields) + + + + Token usage statistics for this request. + + + + Number of tokens in the input (prompt). + + + + Number of tokens in the output (completion). + + + + + + Why the model stopped generating. Possible values: + - `end_turn`: Model reached a natural stopping point + - `max_tokens`: Reached the `max_tokens` limit + - `tool_use`: Model called a tool + + +### Streaming Response + +When `stream: true`, the response is sent as Server-Sent Events (SSE). Each event is prefixed with `event: ` and `data: ` lines. + +**Event types:** + +- `message_start`: Initial event with message metadata +- `content_block_start`: A new content block begins +- `content_block_delta`: Incremental content for the current block +- `content_block_stop`: Current content block is complete +- `message_delta`: Message-level delta (includes `stop_reason` when done) +- `message_stop`: Stream is complete +- `error`: An error occurred + +## Special Headers + + + Enable token compression to reduce token usage. When enabled, the gateway automatically compresses your prompts to reduce costs by up to 50%. + + See [Token Compression](/features/token-compression) for more details. + + + + Comma-separated list of tags for categorizing and filtering requests in analytics and logs. + + Example: `X-edgee-tags: production,chatbot,customer-support` + + + + Enable debug mode to include additional debugging information in the response. + + +## Examples + +### Basic Message + + +```bash cURL +curl 'https://api.edgee.ai/v1/messages' \ + -H "x-api-key: $EDGEE_API_KEY" \ + -H 'Content-Type: application/json' \ + -d '{ + "model": "claude-sonnet-4.5", + "max_tokens": 1024, + "messages": [ + { + "role": "user", + "content": "Hello, Claude! How are you today?" + } + ] + }' +``` + +```python Python +import anthropic + +client = anthropic.Anthropic( + api_key="YOUR_EDGEE_API_KEY", + base_url="https://api.edgee.ai" +) + +message = client.messages.create( + model="claude-sonnet-4.5", + max_tokens=1024, + messages=[ + { + "role": "user", + "content": "Hello, Claude! How are you today?" + } + ] +) + +print(message.content) +``` + +```typescript TypeScript +import Anthropic from '@anthropic-ai/sdk'; + +const client = new Anthropic({ + apiKey: process.env.EDGEE_API_KEY, + baseURL: 'https://api.edgee.ai' +}); + +const message = await client.messages.create({ + model: 'claude-sonnet-4.5', + max_tokens: 1024, + messages: [ + { + role: 'user', + content: 'Hello, Claude! How are you today?' + } + ] +}); + +console.log(message.content); +``` + + +### Multi-Turn Conversation + + +```bash cURL +curl 'https://api.edgee.ai/v1/messages' \ + -H "x-api-key: $EDGEE_API_KEY" \ + -H 'Content-Type: application/json' \ + -d '{ + "model": "claude-sonnet-4.5", + "max_tokens": 1024, + "messages": [ + { + "role": "user", + "content": "What is the capital of France?" + }, + { + "role": "assistant", + "content": "The capital of France is Paris." + }, + { + "role": "user", + "content": "What is its population?" + } + ] + }' +``` + + +### With System Prompt + + +```bash cURL +curl 'https://api.edgee.ai/v1/messages' \ + -H "x-api-key: $EDGEE_API_KEY" \ + -H 'Content-Type: application/json' \ + -d '{ + "model": "claude-sonnet-4.5", + "max_tokens": 1024, + "system": "You are a helpful assistant that always responds in a friendly and concise manner.", + "messages": [ + { + "role": "user", + "content": "Tell me about the solar system." + } + ] + }' +``` + + +### Streaming + + +```bash cURL +curl 'https://api.edgee.ai/v1/messages' \ + -H "x-api-key: $EDGEE_API_KEY" \ + -H 'Content-Type: application/json' \ + -d '{ + "model": "claude-sonnet-4.5", + "max_tokens": 1024, + "stream": true, + "messages": [ + { + "role": "user", + "content": "Write a haiku about coding." + } + ] + }' +``` + +```python Python +import anthropic + +client = anthropic.Anthropic( + api_key="YOUR_EDGEE_API_KEY", + base_url="https://api.edgee.ai" +) + +with client.messages.stream( + model="claude-sonnet-4.5", + max_tokens=1024, + messages=[ + { + "role": "user", + "content": "Write a haiku about coding." + } + ] +) as stream: + for text in stream.text_stream: + print(text, end="", flush=True) +``` + + +### With Tools + + +```bash cURL +curl 'https://api.edgee.ai/v1/messages' \ + -H "x-api-key: $EDGEE_API_KEY" \ + -H 'Content-Type: application/json' \ + -d '{ + "model": "claude-sonnet-4.5", + "max_tokens": 1024, + "tools": [ + { + "name": "get_weather", + "description": "Get the current weather in a given location", + "input_schema": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city and state, e.g. San Francisco, CA" + } + }, + "required": ["location"] + } + } + ], + "messages": [ + { + "role": "user", + "content": "What is the weather in San Francisco?" + } + ] + }' +``` + + +### With Token Compression + + +```bash cURL +curl 'https://api.edgee.ai/v1/messages' \ + -H "x-api-key: $EDGEE_API_KEY" \ + -H 'Content-Type: application/json' \ + -H 'X-Edgee-Enable-Compression: true' \ + -d '{ + "model": "claude-sonnet-4.5", + "max_tokens": 1024, + "messages": [ + { + "role": "user", + "content": "Summarize this long document..." + } + ] + }' +``` + + +## Error Handling + +See the [Errors](/api-reference/errors) page for details on error responses. + +Common errors specific to this endpoint: + +- `streaming_not_supported`: Streaming was requested but the model doesn't use the Anthropic provider +- `count_tokens_not_supported`: Token counting is only available with Anthropic provider + +## Related Endpoints + +- [Chat Completions](/api-reference/chat-completion) - OpenAI-compatible endpoint with multi-provider support + +## SDK Integration + +For detailed examples of using this endpoint with the Anthropic SDK, see: +- [Anthropic SDK Integration](/integrations/anthropic-sdk) diff --git a/api-reference/openapi.json b/api-reference/openapi.json index 8cf7eec..3329938 100644 --- a/api-reference/openapi.json +++ b/api-reference/openapi.json @@ -206,6 +206,81 @@ } } }, + "/v1/messages": { + "post": { + "operationId": "createMessage", + "summary": "Create message (Anthropic format)", + "description": "Creates a message using Anthropic's native Messages API format. Only works with Anthropic provider.", + "tags": ["Messages"], + "security": [ + { + "bearerAuth": [] + }, + { + "apiKeyAuth": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateMessageRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Message created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateMessageResponse" + } + }, + "text/event-stream": { + "schema": { + "type": "string", + "format": "binary", + "description": "Server-Sent Events stream for streaming responses" + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/v1/models": { "get": { "operationId": "listModels", @@ -716,7 +791,8 @@ "provider_not_supported", "unauthorized", "forbidden", - "usage_limit_exceeded" + "usage_limit_exceeded", + "streaming_not_supported" ] }, "message": { @@ -726,6 +802,256 @@ } } } + }, + "CreateMessageRequest": { + "type": "object", + "required": ["model", "max_tokens", "messages"], + "properties": { + "model": { + "type": "string", + "description": "The model ID to use (Anthropic format, without provider prefix)", + "example": "claude-sonnet-4.5" + }, + "max_tokens": { + "type": "integer", + "description": "Maximum number of tokens to generate", + "minimum": 1, + "example": 1024 + }, + "messages": { + "type": "array", + "description": "Array of message objects", + "items": { + "$ref": "#/components/schemas/MessageParam" + }, + "minItems": 1 + }, + "system": { + "oneOf": [ + { + "type": "string", + "description": "System prompt as a string" + }, + { + "type": "array", + "description": "System prompt as content blocks", + "items": { + "$ref": "#/components/schemas/ContentBlock" + } + } + ] + }, + "stream": { + "type": "boolean", + "description": "Enable streaming responses", + "default": false + }, + "tools": { + "type": "array", + "description": "Tool definitions", + "items": { + "$ref": "#/components/schemas/AnthropicTool" + } + }, + "tool_choice": { + "$ref": "#/components/schemas/ToolChoice" + } + } + }, + "MessageParam": { + "type": "object", + "required": ["role", "content"], + "properties": { + "role": { + "type": "string", + "enum": ["user", "assistant"], + "description": "The role of the message" + }, + "content": { + "oneOf": [ + { + "type": "string", + "description": "Simple text content" + }, + { + "type": "array", + "description": "Array of content blocks", + "items": { + "$ref": "#/components/schemas/ContentBlock" + } + } + ] + } + } + }, + "ContentBlock": { + "type": "object", + "required": ["type"], + "discriminator": { + "propertyName": "type" + }, + "oneOf": [ + { + "type": "object", + "required": ["type", "text"], + "properties": { + "type": { + "type": "string", + "enum": ["text"] + }, + "text": { + "type": "string" + } + } + }, + { + "type": "object", + "required": ["type", "id", "name", "input"], + "properties": { + "type": { + "type": "string", + "enum": ["tool_use"] + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "input": { + "type": "object" + } + } + }, + { + "type": "object", + "required": ["type", "tool_use_id", "content"], + "properties": { + "type": { + "type": "string", + "enum": ["tool_result"] + }, + "tool_use_id": { + "type": "string" + }, + "content": { + "type": "string" + }, + "is_error": { + "type": "boolean", + "default": false + } + } + } + ] + }, + "AnthropicTool": { + "type": "object", + "required": ["name", "input_schema"], + "properties": { + "name": { + "type": "string", + "description": "The name of the tool" + }, + "description": { + "type": "string", + "description": "Description of what the tool does" + }, + "input_schema": { + "type": "object", + "description": "JSON Schema describing the tool's input parameters" + } + } + }, + "ToolChoice": { + "type": "object", + "required": ["type"], + "discriminator": { + "propertyName": "type" + }, + "oneOf": [ + { + "type": "object", + "required": ["type"], + "properties": { + "type": { + "type": "string", + "enum": ["auto"], + "description": "Model decides whether to use tools" + } + } + }, + { + "type": "object", + "required": ["type"], + "properties": { + "type": { + "type": "string", + "enum": ["any"], + "description": "Model must use one of the provided tools" + } + } + }, + { + "type": "object", + "required": ["type", "name"], + "properties": { + "type": { + "type": "string", + "enum": ["tool"] + }, + "name": { + "type": "string", + "description": "Name of the specific tool to use" + } + } + } + ] + }, + "CreateMessageResponse": { + "type": "object", + "required": ["id", "model", "content", "usage"], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for this message" + }, + "model": { + "type": "string", + "description": "The model that generated the response" + }, + "content": { + "type": "array", + "description": "Array of content blocks", + "items": { + "$ref": "#/components/schemas/ContentBlock" + } + }, + "usage": { + "$ref": "#/components/schemas/AnthropicUsage" + }, + "stop_reason": { + "type": "string", + "enum": ["end_turn", "max_tokens", "tool_use"], + "description": "Why the model stopped generating" + } + } + }, + "AnthropicUsage": { + "type": "object", + "required": ["input_tokens", "output_tokens"], + "properties": { + "input_tokens": { + "type": "integer", + "description": "Number of input tokens", + "minimum": 0 + }, + "output_tokens": { + "type": "integer", + "description": "Number of output tokens", + "minimum": 0 + } + } } }, "securitySchemes": { @@ -734,13 +1060,23 @@ "scheme": "bearer", "bearerFormat": "JWT", "description": "Bearer authentication header of the form `Bearer `, where `` is your API key. More info [here](/docs/api-reference/authentication)" + }, + "apiKeyAuth": { + "type": "apiKey", + "in": "header", + "name": "x-api-key", + "description": "Anthropic-style API key authentication using the x-api-key header" } } }, "tags": [ { "name": "Chat", - "description": "Chat completion endpoints" + "description": "Chat completion endpoints (OpenAI format)" + }, + { + "name": "Messages", + "description": "Messages endpoints (Anthropic format)" }, { "name": "Models", diff --git a/docs.json b/docs.json index fd64e13..2151a13 100644 --- a/docs.json +++ b/docs.json @@ -156,7 +156,6 @@ { "tab": "API Reference", "icon": "terminal", - "groups": [ { "group": "Introduction", @@ -168,7 +167,11 @@ }, { "group": "Endpoints", - "pages": ["api-reference/chat-completion", "api-reference/models"] + "pages": [ + "api-reference/chat-completion", + "api-reference/messages", + "api-reference/models" + ] } ] }, diff --git a/package-lock.json b/package-lock.json index 53eb8c3..70f5c9b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "dependencies": { - "mintlify": "^4.2.315" + "mintlify": "^4.2.334" } }, "node_modules/@alcalzone/ansi-tokenize": { @@ -76,9 +76,9 @@ } }, "node_modules/@asyncapi/specs": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/@asyncapi/specs/-/specs-6.11.1.tgz", - "integrity": "sha512-A3WBLqAKGoJ2+6FWFtpjBlCQ1oFCcs4GxF7zsIGvNqp/klGUHjlA3aAcZ9XMMpLGE8zPeYDz2x9FmO6DSuKraQ==", + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/@asyncapi/specs/-/specs-6.8.1.tgz", + "integrity": "sha512-czHoAk3PeXTLR+X8IUaD+IpT+g+zUvkcgMDJVothBsan+oHN3jfcFcFUNdOPAAFoUCQN1hXF1dWuphWy05THlA==", "license": "Apache-2.0", "dependencies": { "@types/json-schema": "^7.0.11" @@ -982,18 +982,18 @@ } }, "node_modules/@mintlify/cli": { - "version": "4.0.919", - "resolved": "https://registry.npmjs.org/@mintlify/cli/-/cli-4.0.919.tgz", - "integrity": "sha512-7zVYxDV/KteLlphmy7zGLUIQek1jFM1Lt7DPo1LVAUR3S8gYp35MopJLkR/o7WrpVVZnyZAYdmkEs/cbiCBQBw==", + "version": "4.0.938", + "resolved": "https://registry.npmjs.org/@mintlify/cli/-/cli-4.0.938.tgz", + "integrity": "sha512-3535UYtPNQ0W/sjr1/ZKwvxBA4bRLp5OKZsmUx6YFe1hmVdI4UHV3ywVC2gvUjOAmp7d9F1G6Slu5hxkKGJP1w==", "license": "Elastic-2.0", "dependencies": { "@inquirer/prompts": "7.9.0", - "@mintlify/common": "1.0.698", - "@mintlify/link-rot": "3.0.857", - "@mintlify/models": "0.0.263", - "@mintlify/prebuild": "1.0.834", - "@mintlify/previewing": "4.0.890", - "@mintlify/validation": "0.1.577", + "@mintlify/common": "1.0.715", + "@mintlify/link-rot": "3.0.875", + "@mintlify/models": "0.0.269", + "@mintlify/prebuild": "1.0.851", + "@mintlify/previewing": "4.0.908", + "@mintlify/validation": "0.1.586", "adm-zip": "0.5.16", "chalk": "5.2.0", "color": "4.2.3", @@ -1018,16 +1018,17 @@ } }, "node_modules/@mintlify/common": { - "version": "1.0.698", - "resolved": "https://registry.npmjs.org/@mintlify/common/-/common-1.0.698.tgz", - "integrity": "sha512-CicjlATkONn6ARR55J6JY+tUmSof3zjZKb708RYv3yG3qQdMB2/g0+FvQXkk2dsPgq105J5dFb/n2+vYuiEsHA==", + "version": "1.0.715", + "resolved": "https://registry.npmjs.org/@mintlify/common/-/common-1.0.715.tgz", + "integrity": "sha512-23atHBnjre0pXNPJmr/bEz7ZWkTtQplefXG+BsKraFWDThBBKzyWhZAIDY/Z1cr/Jeu/sTL7G5UQ67Wj6r5LIw==", "license": "ISC", "dependencies": { "@asyncapi/parser": "3.4.0", + "@asyncapi/specs": "6.8.1", "@mintlify/mdx": "^3.0.4", - "@mintlify/models": "0.0.263", + "@mintlify/models": "0.0.269", "@mintlify/openapi-parser": "^0.0.8", - "@mintlify/validation": "0.1.577", + "@mintlify/validation": "0.1.586", "@sindresorhus/slugify": "2.2.0", "@types/mdast": "4.0.4", "acorn": "8.11.2", @@ -1456,16 +1457,16 @@ } }, "node_modules/@mintlify/link-rot": { - "version": "3.0.857", - "resolved": "https://registry.npmjs.org/@mintlify/link-rot/-/link-rot-3.0.857.tgz", - "integrity": "sha512-ThNzzt4qzs0G88l7VJ3GqTHRUGhtDftydWQrxvm2v/eTUO9mjFkJZ1UZcp0/NYZgEOi2eLLHSns5B+PVlow5LA==", + "version": "3.0.875", + "resolved": "https://registry.npmjs.org/@mintlify/link-rot/-/link-rot-3.0.875.tgz", + "integrity": "sha512-38QHad7n0YsAOW0HFpX1yzo+sK43iqaUe0Mf7h2F9NalG/pfmAcl4R0rP9x9/DSkC994RbV8ZuvWbgPiKNBXCw==", "license": "Elastic-2.0", "dependencies": { - "@mintlify/common": "1.0.698", - "@mintlify/prebuild": "1.0.834", - "@mintlify/previewing": "4.0.890", + "@mintlify/common": "1.0.715", + "@mintlify/prebuild": "1.0.851", + "@mintlify/previewing": "4.0.908", "@mintlify/scraping": "4.0.522", - "@mintlify/validation": "0.1.577", + "@mintlify/validation": "0.1.586", "fs-extra": "11.1.0", "unist-util-visit": "4.1.2" }, @@ -1536,9 +1537,9 @@ } }, "node_modules/@mintlify/models": { - "version": "0.0.263", - "resolved": "https://registry.npmjs.org/@mintlify/models/-/models-0.0.263.tgz", - "integrity": "sha512-Hfu0CfCkZ0Rpsvc5CBX3JDA0bqDWJ16T7ukoj/y5KltWhrukEPOl9/QR1zG/ScdXDwdOm3Zn5QQDT3GLbL0tnQ==", + "version": "0.0.269", + "resolved": "https://registry.npmjs.org/@mintlify/models/-/models-0.0.269.tgz", + "integrity": "sha512-cNdAko4YIjcur+sNVn/oxTTO0UaM+JOITIzhnT1l0gIT9qtC2WmGFviPsL1gsXAnGc8tRaNTYcEbILaDOegFLw==", "license": "Elastic-2.0", "dependencies": { "axios": "1.13.2", @@ -1583,15 +1584,15 @@ } }, "node_modules/@mintlify/prebuild": { - "version": "1.0.834", - "resolved": "https://registry.npmjs.org/@mintlify/prebuild/-/prebuild-1.0.834.tgz", - "integrity": "sha512-JEdLMiKp9AygNpyEP2OuBJi9dzH34o8o57E55vlUrhQ6I/Po3Ww0yNQYH5wQ6bZM+tVX2ugJjKMclFURBfYMaw==", + "version": "1.0.851", + "resolved": "https://registry.npmjs.org/@mintlify/prebuild/-/prebuild-1.0.851.tgz", + "integrity": "sha512-bSrgZiQRduxwjmHF/u9V6ROPdG9Qbc/YVDrgqC/dZyT8F+V/NIhzUVkOfkSBT4BHg9B/IoQXuBOL0KjayZR2MA==", "license": "Elastic-2.0", "dependencies": { - "@mintlify/common": "1.0.698", + "@mintlify/common": "1.0.715", "@mintlify/openapi-parser": "^0.0.8", - "@mintlify/scraping": "4.0.559", - "@mintlify/validation": "0.1.577", + "@mintlify/scraping": "4.0.576", + "@mintlify/validation": "0.1.586", "chalk": "5.3.0", "favicons": "7.2.0", "front-matter": "4.0.2", @@ -1605,12 +1606,12 @@ } }, "node_modules/@mintlify/prebuild/node_modules/@mintlify/scraping": { - "version": "4.0.559", - "resolved": "https://registry.npmjs.org/@mintlify/scraping/-/scraping-4.0.559.tgz", - "integrity": "sha512-xowugtpLPQacXLqdSB+X85Ug1uxbJMkWa8IzO8CiyJN9kcx1EIG9Ydxn0JJhyENETR3jd1VLKzIMvLXFeGAzZA==", + "version": "4.0.576", + "resolved": "https://registry.npmjs.org/@mintlify/scraping/-/scraping-4.0.576.tgz", + "integrity": "sha512-5epw+n1DPiFmk7mw3Nmh8lrc/pClXD5fFKdkpEfJSggbFFY4v5tz935RqUTTwHTvelb+VZCaYN6tai2nZBFezQ==", "license": "Elastic-2.0", "dependencies": { - "@mintlify/common": "1.0.698", + "@mintlify/common": "1.0.715", "@mintlify/openapi-parser": "^0.0.8", "fs-extra": "11.1.1", "hast-util-to-mdast": "10.1.0", @@ -1786,14 +1787,14 @@ } }, "node_modules/@mintlify/previewing": { - "version": "4.0.890", - "resolved": "https://registry.npmjs.org/@mintlify/previewing/-/previewing-4.0.890.tgz", - "integrity": "sha512-A8QeRFQ9dCsZJQgr6GCzSSrI+zlNm4dSlYUBDjPDkYI92uKmZO95maAKiXaWPKGQfjeIf8YYbP3n+k4QE+gpgg==", + "version": "4.0.908", + "resolved": "https://registry.npmjs.org/@mintlify/previewing/-/previewing-4.0.908.tgz", + "integrity": "sha512-JjJFHXgBi1E6elKqq5tzqpUd3sAdRhLZEfY/2hjEpzPcSCeUjf6biCNfTzi/+Qi/0nktthB4BIFY5MkXswdJyw==", "license": "Elastic-2.0", "dependencies": { - "@mintlify/common": "1.0.698", - "@mintlify/prebuild": "1.0.834", - "@mintlify/validation": "0.1.577", + "@mintlify/common": "1.0.715", + "@mintlify/prebuild": "1.0.851", + "@mintlify/validation": "0.1.586", "better-opn": "3.0.2", "chalk": "5.2.0", "chokidar": "3.5.3", @@ -2433,13 +2434,13 @@ } }, "node_modules/@mintlify/validation": { - "version": "0.1.577", - "resolved": "https://registry.npmjs.org/@mintlify/validation/-/validation-0.1.577.tgz", - "integrity": "sha512-tecysj9oeTc0SHz1ro/oaqMLwEpJw/K8oqoDWULgOfBcDPeG6uKNMe2NiLyVZLZUMxsywFKOJFRkF/8mTbJcHQ==", + "version": "0.1.586", + "resolved": "https://registry.npmjs.org/@mintlify/validation/-/validation-0.1.586.tgz", + "integrity": "sha512-db8axJVnysJfSk16vSBMWKp8+Vareox1U6qxX8JoQRrONrgIHgkCS0wlo0LQwEdBkK8S2mX5xhVaLpktM3hm5g==", "license": "Elastic-2.0", "dependencies": { "@mintlify/mdx": "^3.0.4", - "@mintlify/models": "0.0.263", + "@mintlify/models": "0.0.269", "arktype": "2.1.27", "js-yaml": "4.1.0", "lcm": "0.0.3", @@ -3798,9 +3799,9 @@ } }, "node_modules/@types/node": { - "version": "25.2.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.2.0.tgz", - "integrity": "sha512-DZ8VwRFUNzuqJ5khrvwMXHmvPe+zGayJhr2CDNiKB1WBE1ST8Djl00D0IC4vvNmHMdj6DlbYRIaFE7WHjlDl5w==", + "version": "25.2.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.2.2.tgz", + "integrity": "sha512-BkmoP5/FhRYek5izySdkOneRyXYN35I860MFAGupTdebyE66uZaR+bXLHq8k4DirE5DwQi3NuhvRU1jqTVwUrQ==", "license": "MIT", "peer": true, "dependencies": { @@ -3808,9 +3809,9 @@ } }, "node_modules/@types/react": { - "version": "19.2.10", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.10.tgz", - "integrity": "sha512-WPigyYuGhgZ/cTPRXB2EwUw+XvsRA3GqHlsP4qteqrnnjDrApbS7MxcGr/hke5iUoeB7E/gQtrs9I37zAJ0Vjw==", + "version": "19.2.13", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.13.tgz", + "integrity": "sha512-KkiJeU6VbYbUOp5ITMIc7kBfqlYkKA5KhEHVrGMmUUMt7NeaZg65ojdPk+FtNrBAOXNVM5QM72jnADjM+XVRAQ==", "license": "MIT", "peer": true, "dependencies": { @@ -4005,9 +4006,9 @@ } }, "node_modules/ansi-escapes": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.2.0.tgz", - "integrity": "sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.3.0.tgz", + "integrity": "sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==", "license": "MIT", "dependencies": { "environment": "^1.0.0" @@ -9557,12 +9558,12 @@ } }, "node_modules/mintlify": { - "version": "4.2.315", - "resolved": "https://registry.npmjs.org/mintlify/-/mintlify-4.2.315.tgz", - "integrity": "sha512-G2P7C5TAjayZF2WqrF+2Ya/yfIQSswS605YaBlXMlMCL4lFmqt4POPCowkg4OnojgAIm44JaBohYjhsDJqlMZA==", + "version": "4.2.334", + "resolved": "https://registry.npmjs.org/mintlify/-/mintlify-4.2.334.tgz", + "integrity": "sha512-Qly17PezvCGxPXb7cvtZ4LK5pSjoQ1iOK0ylheYT/EZ/puQGQkehQGG7wALUnGMIDPXo640gzYJsFocd21ECkg==", "license": "Elastic-2.0", "dependencies": { - "@mintlify/cli": "4.0.919" + "@mintlify/cli": "4.0.938" }, "bin": { "mint": "index.js", diff --git a/package.json b/package.json index 12b27c4..a0a001a 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,6 @@ "links": "mintlify broken-links" }, "dependencies": { - "mintlify": "^4.2.315" + "mintlify": "^4.2.334" } }