From 76968ece42e4da06544f9d56c7acfb4ba6fc3202 Mon Sep 17 00:00:00 2001 From: fenil modi Date: Fri, 11 Sep 2026 05:07:14 +0000 Subject: [PATCH 1/2] fix(aiand): use square A-mark logo for catalog display The prior wordmark viewBox (~3:1) letterboxed into the 1rem provider slot and looked blank. Extract the brand A-mark into a 0 0 24 24 currentColor SVG so it renders like other providers. --- providers/aiand/logo.svg | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/providers/aiand/logo.svg b/providers/aiand/logo.svg index 0a0726cda82..e36f046a233 100644 --- a/providers/aiand/logo.svg +++ b/providers/aiand/logo.svg @@ -1,5 +1,4 @@ - - - - + + + From 706c38b9ffdf4f80da873e0cfa1141fe9a24fa03 Mon Sep 17 00:00:00 2001 From: fenil modi Date: Fri, 11 Sep 2026 05:33:30 +0000 Subject: [PATCH 2/2] fix(aiand): sync cache_read pricing and reasoning_options Align all ai& model entries with live GET /v1/models and effort probes: add missing cache_read rates, narrow reasoning_effort to host-accepted values, and document reasoning_content interleaved like other providers. --- .../models/deepseek-ai/deepseek-v4-flash.toml | 18 ++++++++------- .../models/deepseek-ai/deepseek-v4-pro.toml | 17 ++++++++------ .../aiand/models/google/gemma-4-31b-it.toml | 21 +++++++++--------- .../models/moonshotai/kimi-k2.7-code.toml | 19 +++++++++------- .../aiand/models/moonshotai/kimi-k3.toml | 22 ++++++++----------- .../models/motif-technologies/motif-3.toml | 17 ++++++++++++-- .../aiand/models/openai/gpt-oss-120b.toml | 14 +++++++----- providers/aiand/models/qwen/qwen3.6-27b.toml | 21 +++++++++--------- providers/aiand/models/qwen/qwen3.8-27b.toml | 17 +++++++------- providers/aiand/models/zai-org/glm-5.2.toml | 17 ++++++++------ providers/aiand/models/zai-org/glm-5.3.toml | 18 +++++++-------- 11 files changed, 112 insertions(+), 89 deletions(-) diff --git a/providers/aiand/models/deepseek-ai/deepseek-v4-flash.toml b/providers/aiand/models/deepseek-ai/deepseek-v4-flash.toml index 97421518a57..9b8bea586bd 100644 --- a/providers/aiand/models/deepseek-ai/deepseek-v4-flash.toml +++ b/providers/aiand/models/deepseek-ai/deepseek-v4-flash.toml @@ -1,19 +1,21 @@ -# Source: https://docs.aiand.com/models/catalog/ (USD list prices; accessed -# 2026-07-24). GET /v1/models reports context_window = 1048576 (the catalog -# rounds this to "1M" and the shared base model to 1_000_000), so the exact -# figure is overridden here. -# reasoning_effort verified by live probe on 2026-07-24: all six documented -# values accepted ("none" produces no reasoning content, "high" does); -# invalid values rejected with 400 (negative control). +# Effort: reasoning_effort = none|high|max +# Pricing: GET https://api.aiand.com/v1/models (accessed 2026-09-11) +# Docs: https://docs.aiand.com/models/catalog/ +# Live probe 2026-09-11: none|high|max → 200; minimal|low|medium|xhigh → 400. +# Reasoning side channel: message.reasoning_content base_model = "deepseek/deepseek-v4-flash" [[reasoning_options]] type = "effort" -values = ["none", "minimal", "low", "medium", "high", "xhigh"] +values = ["none", "high", "max"] + +[interleaved] +field = "reasoning_content" [cost] input = 0.15 output = 0.25 +cache_read = 0.08 [limit] context = 1_048_576 diff --git a/providers/aiand/models/deepseek-ai/deepseek-v4-pro.toml b/providers/aiand/models/deepseek-ai/deepseek-v4-pro.toml index 8a8cff1112e..88498c5c29a 100644 --- a/providers/aiand/models/deepseek-ai/deepseek-v4-pro.toml +++ b/providers/aiand/models/deepseek-ai/deepseek-v4-pro.toml @@ -1,18 +1,21 @@ -# Source: https://docs.aiand.com/models/catalog/ (USD list prices; accessed -# 2026-07-24). GET /v1/models reports context_window = 1048576 (the catalog -# rounds this to "1M" and the shared base model to 1_000_000), so the exact -# figure is overridden here. -# reasoning_effort verified by live probe on 2026-07-24: all six documented -# values accepted; invalid values rejected with 400 (negative control). +# Effort: reasoning_effort = none|high|max +# Pricing: GET https://api.aiand.com/v1/models (accessed 2026-09-11) +# Docs: https://docs.aiand.com/models/catalog/ +# Live probe 2026-09-11: none|high|max → 200; low → 400. +# Reasoning side channel: message.reasoning_content base_model = "deepseek/deepseek-v4-pro" [[reasoning_options]] type = "effort" -values = ["none", "minimal", "low", "medium", "high", "xhigh"] +values = ["none", "high", "max"] + +[interleaved] +field = "reasoning_content" [cost] input = 1 output = 2.5 +cache_read = 0.25 [limit] context = 1_048_576 diff --git a/providers/aiand/models/google/gemma-4-31b-it.toml b/providers/aiand/models/google/gemma-4-31b-it.toml index b006191cefe..312e02bf19b 100644 --- a/providers/aiand/models/google/gemma-4-31b-it.toml +++ b/providers/aiand/models/google/gemma-4-31b-it.toml @@ -1,21 +1,22 @@ -# Source: https://docs.aiand.com/models/catalog/ (USD list prices; accessed -# 2026-07-24) and live probes against api.aiand.com on the same date. -# Verified by direct test: image (data URL), video (video_url), and PDF -# (Files API purpose="document", referenced by file_id) inputs all accepted. -# ai& converts PDFs to per-page images at upload, so "pdf" is a provider -# input modality here even though the base model itself is not PDF-native. -# reasoning_effort verified by live probe on 2026-07-24: all six documented -# values accepted ("none" produces no reasoning content, "high" does); -# invalid values rejected with 400 (negative control). +# Effort: reasoning_effort = none|high +# Pricing: GET https://api.aiand.com/v1/models (accessed 2026-09-11) +# Docs: https://docs.aiand.com/models/catalog/ +# Live probe 2026-09-11: none|high → 200; minimal|low|xhigh → 400. +# Modalities: image, video, and PDF accepted on this host (2026-07-24 probes). +# Reasoning side channel: message.reasoning_content base_model = "google/gemma-4-31b-it" [[reasoning_options]] type = "effort" -values = ["none", "minimal", "low", "medium", "high", "xhigh"] +values = ["none", "high"] + +[interleaved] +field = "reasoning_content" [cost] input = 0.2 output = 0.5 +cache_read = 0.05 [modalities] input = ["text", "image", "video", "pdf"] diff --git a/providers/aiand/models/moonshotai/kimi-k2.7-code.toml b/providers/aiand/models/moonshotai/kimi-k2.7-code.toml index 2e553c932ff..a384aa028b6 100644 --- a/providers/aiand/models/moonshotai/kimi-k2.7-code.toml +++ b/providers/aiand/models/moonshotai/kimi-k2.7-code.toml @@ -1,19 +1,22 @@ -# Source: https://docs.aiand.com/models/catalog/ (USD list prices; accessed -# 2026-07-24) and live probes against api.aiand.com on the same date. -# Verified by direct test: image and PDF (Files API, file_id) inputs are -# accepted; video is rejected ("does not support video input"), so modalities -# are overridden from the shared base model's text+image+video. -# reasoning_effort verified by live probe on 2026-07-24: all six documented -# values accepted; invalid values rejected with 400 (negative control). +# Effort: reasoning_effort = high (always-on; none/low rejected) +# Pricing: GET https://api.aiand.com/v1/models (accessed 2026-09-11) +# Docs: https://docs.aiand.com/models/catalog/ +# Live probe 2026-09-11: high → 200; none|low → 400. +# Modalities: image + PDF accepted; video rejected (2026-07-24 probes). +# Reasoning side channel: message.reasoning_content base_model = "moonshotai/kimi-k2.7-code" [[reasoning_options]] type = "effort" -values = ["none", "minimal", "low", "medium", "high", "xhigh"] +values = ["high"] + +[interleaved] +field = "reasoning_content" [cost] input = 0.75 output = 3.5 +cache_read = 0.2 [modalities] input = ["text", "image", "pdf"] diff --git a/providers/aiand/models/moonshotai/kimi-k3.toml b/providers/aiand/models/moonshotai/kimi-k3.toml index 4e7d75f2c83..b28cbd68903 100644 --- a/providers/aiand/models/moonshotai/kimi-k3.toml +++ b/providers/aiand/models/moonshotai/kimi-k3.toml @@ -1,22 +1,18 @@ -# Source: GET https://api.aiand.com/v1/models (USD list prices; accessed -# 2026-07-28). Pricing is aiand-specific: $3.00 input, $0.50 cache_read, -# $12.50 output (differs from Moonshot official rates). -# Modalities: text + image + pdf accepted per GET /v1/models; video rejected -# ("does not support video input") — overridden from shared base -# text+image+video. PDF kept: sibling aiand Moonshot entries (kimi-k2.6, -# kimi-k2.7-code) include pdf after catalog/probe evidence; aiand treats -# PDF as a provider-level Files API modality. -# reasoning_effort: K3 backend accepts only low/high/max per official docs -# (https://platform.kimi.ai/docs/guide/kimi-k3-quickstart). The aiand gateway -# schema lists none/minimal/low/medium/high/xhigh/max but K3 rejects -# none/minimal/medium/xhigh with 400. aiand does not expose a separate off -# toggle; K3 always reasons. +# Effort: reasoning_effort = low|high|max (always-on; no none) +# Pricing: GET https://api.aiand.com/v1/models (accessed 2026-09-11) +# Docs: https://docs.aiand.com/models/catalog/ +# K3 accepts only low|high|max (lab docs + host 400 on none/minimal/medium/xhigh). +# Modalities: text + image + PDF; video rejected on this host. +# Reasoning side channel: message.reasoning_content base_model = "moonshotai/kimi-k3" [[reasoning_options]] type = "effort" values = ["low", "high", "max"] +[interleaved] +field = "reasoning_content" + [cost] input = 3 output = 12.5 diff --git a/providers/aiand/models/motif-technologies/motif-3.toml b/providers/aiand/models/motif-technologies/motif-3.toml index b2a69ab0fc4..d0dcf873cc7 100644 --- a/providers/aiand/models/motif-technologies/motif-3.toml +++ b/providers/aiand/models/motif-technologies/motif-3.toml @@ -1,18 +1,31 @@ +# Effort: reasoning_effort = none|high +# Pricing: GET https://api.aiand.com/v1/models (accessed 2026-09-11) +# Docs: https://docs.aiand.com/models/catalog/ +# Live probe 2026-09-11: none|high → 200; low → 400. +# First-party Motif host entry (no shared lab base_model in catalog yet). +# Reasoning side channel: message.reasoning_content name = "Motif 3" description = "Motif 3 is a large-scale, decoder-only Mixture-of-Experts (MoE) language model with 314 billion total parameters and 13.2 billion parameters activated per token." release_date = "2026-08-12" -last_updated = "2026-08-12" +last_updated = "2026-09-11" attachment = false reasoning = true temperature = false tool_call = false structured_output = false open_weights = false -reasoning_options = [] + +[[reasoning_options]] +type = "effort" +values = ["none", "high"] + +[interleaved] +field = "reasoning_content" [cost] input = 0.5 output = 2 +cache_read = 0.2 [limit] context = 262_144 diff --git a/providers/aiand/models/openai/gpt-oss-120b.toml b/providers/aiand/models/openai/gpt-oss-120b.toml index d7bfcb30588..7083c30e20d 100644 --- a/providers/aiand/models/openai/gpt-oss-120b.toml +++ b/providers/aiand/models/openai/gpt-oss-120b.toml @@ -1,14 +1,18 @@ -# Source: https://docs.aiand.com/models/catalog/ (accessed 2026-07-18) -# reasoning_effort verified by live probe on 2026-07-24: the backend rejects -# "none", "minimal", and "xhigh" with 400 ("Supported values are: high, -# medium, low"), so the array is narrowed from the gateway-wide documented -# set. Invalid values also rejected with 400 (negative control). +# Effort: reasoning_effort = low|medium|high +# Pricing: GET https://api.aiand.com/v1/models (accessed 2026-09-11) +# Docs: https://docs.aiand.com/models/catalog/ +# Live probe 2026-07-24: low|medium|high → 200; none|minimal|xhigh → 400. +# Reasoning side channel: message.reasoning_content base_model = "openai/gpt-oss-120b" [[reasoning_options]] type = "effort" values = ["low", "medium", "high"] +[interleaved] +field = "reasoning_content" + [cost] input = 0.15 output = 0.60 +cache_read = 0.08 diff --git a/providers/aiand/models/qwen/qwen3.6-27b.toml b/providers/aiand/models/qwen/qwen3.6-27b.toml index 4859ce77a0b..1f874fc1bc4 100644 --- a/providers/aiand/models/qwen/qwen3.6-27b.toml +++ b/providers/aiand/models/qwen/qwen3.6-27b.toml @@ -1,22 +1,21 @@ -# Source: GET https://api.aiand.com/v1/models (USD list prices; accessed -# 2026-07-28). The catalog Quick-picks section still lists this model as free, -# but the live endpoint reports input = $0.32 / output = $3.20 per 1M tokens, -# so pricing is taken from the API. -# ai&'s deployment rejects image input ("does not support image input") and -# the catalog lists no vision/video/audio capability, so modalities are -# overridden from the shared base model's text+image+video+audio to text-only, -# and attachment is set to false to match. -# reasoning_effort verified by live probe on 2026-07-24: all six documented -# values accepted; invalid values rejected with 400 (negative control). +# Effort: reasoning_effort = none|high +# Pricing: GET https://api.aiand.com/v1/models (accessed 2026-09-11) +# Docs: https://docs.aiand.com/models/catalog/ +# Live probe 2026-09-11: none|high → 200; minimal|low|xhigh → 400. +# Reasoning side channel: message.reasoning_content base_model = "alibaba/qwen3.6-27b" [[reasoning_options]] type = "effort" -values = ["none", "minimal", "low", "medium", "high", "xhigh"] +values = ["none", "high"] + +[interleaved] +field = "reasoning_content" [cost] input = 0.32 output = 3.2 +cache_read = 0.2 [modalities] input = ["text", "image", "video", "pdf"] diff --git a/providers/aiand/models/qwen/qwen3.8-27b.toml b/providers/aiand/models/qwen/qwen3.8-27b.toml index 30b2de2637a..487eb3e6f98 100644 --- a/providers/aiand/models/qwen/qwen3.8-27b.toml +++ b/providers/aiand/models/qwen/qwen3.8-27b.toml @@ -1,18 +1,17 @@ -# Source: GET https://api.aiand.com/v1/models (USD list prices; accessed -# 2026-08-29). GET /v1/models reports context_window = 262144, input = $0.40, -# output = $3.00, cached_input = $0.20 per 1M tokens. -# Modalities: text, image, video, and document (PDF) supported per catalog -# capabilities (vision|video|document). -# reasoning_effort verified by live probe on 2026-08-29: accepts none, low, -# medium, xhigh (200); rejects minimal, high, max with 400 ("Supported -# values: none, low, medium, xhigh"). effort=none returns no -# reasoning_content (off). +# Effort: reasoning_effort = none|low|medium|xhigh +# Pricing: GET https://api.aiand.com/v1/models (accessed 2026-09-11) +# Docs: https://docs.aiand.com/models/catalog/ +# Live probe 2026-08-29: none|low|medium|xhigh → 200; minimal|high|max → 400. +# Reasoning side channel: message.reasoning_content base_model = "alibaba/qwen3.8-27b" [[reasoning_options]] type = "effort" values = ["none", "low", "medium", "xhigh"] +[interleaved] +field = "reasoning_content" + [cost] input = 0.4 output = 3 diff --git a/providers/aiand/models/zai-org/glm-5.2.toml b/providers/aiand/models/zai-org/glm-5.2.toml index 2464bc134c0..ed3b498d41c 100644 --- a/providers/aiand/models/zai-org/glm-5.2.toml +++ b/providers/aiand/models/zai-org/glm-5.2.toml @@ -1,18 +1,21 @@ -# Source: https://docs.aiand.com/models/catalog/ (USD list prices; accessed -# 2026-07-24). GET /v1/models reports context_window = 1048576 (the catalog -# rounds this to "1M" and the shared base model to 1_000_000), so the exact -# figure is overridden here. -# reasoning_effort verified by live probe on 2026-07-24: all six documented -# values accepted; invalid values rejected with 400 (negative control). +# Effort: reasoning_effort = none|high|max +# Pricing: GET https://api.aiand.com/v1/models (accessed 2026-09-11) +# Docs: https://docs.aiand.com/models/catalog/ +# Live probe 2026-09-11: none|high|max → 200; low|xhigh → 400. +# Reasoning side channel: message.reasoning_content base_model = "zhipuai/glm-5.2" [[reasoning_options]] type = "effort" -values = ["none", "minimal", "low", "medium", "high", "xhigh"] +values = ["none", "high", "max"] + +[interleaved] +field = "reasoning_content" [cost] input = 1 output = 4 +cache_read = 0.3 [limit] context = 1_048_576 diff --git a/providers/aiand/models/zai-org/glm-5.3.toml b/providers/aiand/models/zai-org/glm-5.3.toml index 9bdd6c737ee..d7d6ad36c6d 100644 --- a/providers/aiand/models/zai-org/glm-5.3.toml +++ b/providers/aiand/models/zai-org/glm-5.3.toml @@ -1,16 +1,16 @@ -# Source: GET https://api.aiand.com/v1/models (USD list prices; accessed -# 2026-08-29). GET /v1/models reports context_window = 1048576 (shared base -# model uses 1_000_000), so the exact figure is overridden here. -# Lab / peer relays (zhipuai, zai, OpenRouter, Kilo) use always-on effort -# low|high|max. ai&'s deployment differs: live reasoning_effort probe on -# 2026-08-29 accepts none|low|xhigh|max (200); rejects minimal|medium|high -# with 400 ("Supported values: none, low, xhigh, max"). effort=none returns -# no reasoning_content (off); xhigh|max return reasoning_content. +# Effort: reasoning_effort = low|high|max (always-on; no none) +# Pricing: GET https://api.aiand.com/v1/models (accessed 2026-09-11) +# Docs: https://docs.aiand.com/models/catalog/ +# Live probe 2026-09-11: low|high|max → 200; none|xhigh → 400. +# Reasoning side channel: message.reasoning_content base_model = "zhipuai/glm-5.3" [[reasoning_options]] type = "effort" -values = ["none", "low", "xhigh", "max"] +values = ["low", "high", "max"] + +[interleaved] +field = "reasoning_content" [cost] input = 1