From 3011e92ec4f2a0aa3ca9a97ef722857aff361614 Mon Sep 17 00:00:00 2001 From: Pan YANG Date: Wed, 22 Jul 2026 15:40:41 +0800 Subject: [PATCH 1/7] feat(catalog): refresh Google and xAI coding entries --- data/changelogs.json | 150 +++++++++++++++++++ data/data-health.json | 63 ++++---- data/github-stars.json | 3 +- docs/DATA-HEALTH.md | 36 ++--- manifests/$schemas/ref/entity.schema.json | 4 + manifests/clis/antigravity-cli.json | 151 ++++++++++++++++++++ manifests/clis/gemini-cli.json | 39 +++-- manifests/clis/grok-build.json | 23 ++- manifests/ides/antigravity.json | 8 +- manifests/models/gemini-3-1-flash-lite.json | 4 +- manifests/models/gemini-3-5-flash-lite.json | 125 ++++++++++++++++ manifests/models/gemini-3-5-flash.json | 4 +- manifests/models/gemini-3-6-flash.json | 125 ++++++++++++++++ manifests/models/gemini-3-flash.json | 4 +- src/lib/generated/clis.ts | 2 + src/lib/generated/metadata.ts | 4 +- src/lib/generated/models.ts | 4 + src/types/manifests.ts | 1 + translations/ja/shared.json | 2 +- translations/ko/shared.json | 2 +- translations/pt/shared.json | 2 +- translations/ru/shared.json | 2 +- translations/tr/shared.json | 2 +- translations/zh-Hans/shared.json | 2 +- 24 files changed, 677 insertions(+), 85 deletions(-) create mode 100644 manifests/clis/antigravity-cli.json create mode 100644 manifests/models/gemini-3-5-flash-lite.json create mode 100644 manifests/models/gemini-3-6-flash.json diff --git a/data/changelogs.json b/data/changelogs.json index 7a1111e8..ef1e1793 100644 --- a/data/changelogs.json +++ b/data/changelogs.json @@ -1,6 +1,156 @@ { "version": 1, "entries": [ + { + "id": "2026-07-22-manifest-update", + "date": "2026-07-22", + "summary": "9 manifest records changed", + "changes": [ + { + "category": "clis", + "id": "antigravity-cli", + "change": "added", + "fields": [ + "communityUrls", + "confidence", + "description", + "docsUrl", + "familyId", + "githubUrl", + "id", + "lastVerifiedAt", + "latestVersion", + "license", + "name", + "platforms", + "pricing", + "relatedProducts", + "resourceUrls", + "sources", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "clis", + "id": "gemini-cli", + "change": "updated", + "fields": [ + "latestVersion", + "pricing", + "relatedProducts", + "verified", + "confidence", + "deprecated", + "lastVerifiedAt", + "sources", + "verifiedBy" + ] + }, + { + "category": "clis", + "id": "grok-build", + "change": "updated", + "fields": [ + "communityUrls", + "githubUrl", + "lastVerifiedAt", + "latestVersion", + "resourceUrls", + "sources" + ] + }, + { + "category": "ides", + "id": "antigravity", + "change": "updated", + "fields": ["relatedProducts", "familyId"] + }, + { + "category": "models", + "id": "gemini-3-1-flash-lite", + "change": "updated", + "fields": ["lastVerifiedAt", "lifecycle"] + }, + { + "category": "models", + "id": "gemini-3-5-flash", + "change": "updated", + "fields": ["lastVerifiedAt", "lifecycle"] + }, + { + "category": "models", + "id": "gemini-3-5-flash-lite", + "change": "added", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "gemini-3-6-flash", + "change": "added", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "gemini-3-flash", + "change": "updated", + "fields": ["lastVerifiedAt", "lifecycle"] + } + ] + }, { "id": "2026-07-21-url-validation", "date": "2026-07-21", diff --git a/data/data-health.json b/data/data-health.json index a68e9eda..f94461e9 100644 --- a/data/data-health.json +++ b/data/data-health.json @@ -1,5 +1,5 @@ { - "asOf": "2026-07-21", + "asOf": "2026-07-22", "thresholds": { "models": 30, "providers": 30, @@ -10,19 +10,19 @@ "vendors": 90 }, "summary": { - "totalRecords": 247, - "recordsWithSources": 149, - "verifiedRecords": 135, - "provenanceComplete": 117, + "totalRecords": 250, + "recordsWithSources": 153, + "verifiedRecords": 139, + "provenanceComplete": 121, "staleVerifiedRecords": 0, - "translationPlaceholderValues": 1506, + "translationPlaceholderValues": 1500, "danglingRelationships": 0, - "modelBenchmarkCoverage": 9.7, - "productsWithPricing": 67, - "productRecords": 68, + "modelBenchmarkCoverage": 9.6, + "productsWithPricing": 68, + "productRecords": 69, "errors": 0, "warnings": 18, - "info": 98 + "info": 97 }, "byCategory": { "ides": { @@ -32,9 +32,9 @@ "stale": 0 }, "clis": { - "total": 27, - "verified": 2, - "provenanceComplete": 1, + "total": 28, + "verified": 4, + "provenanceComplete": 3, "stale": 0 }, "desktops": { @@ -50,9 +50,9 @@ "stale": 0 }, "models": { - "total": 125, - "verified": 123, - "provenanceComplete": 110, + "total": 127, + "verified": 125, + "provenanceComplete": 112, "stale": 0 }, "providers": { @@ -91,33 +91,33 @@ }, "ja": { "totalStrings": 362, - "matchingEnglish": 122, - "matchingEnglishPercent": 33.7 + "matchingEnglish": 121, + "matchingEnglishPercent": 33.4 }, "ko": { "totalStrings": 362, - "matchingEnglish": 141, - "matchingEnglishPercent": 39 + "matchingEnglish": 140, + "matchingEnglishPercent": 38.7 }, "pt": { "totalStrings": 362, - "matchingEnglish": 136, - "matchingEnglishPercent": 37.6 + "matchingEnglish": 135, + "matchingEnglishPercent": 37.3 }, "ru": { "totalStrings": 362, - "matchingEnglish": 150, - "matchingEnglishPercent": 41.4 + "matchingEnglish": 149, + "matchingEnglishPercent": 41.2 }, "tr": { "totalStrings": 362, - "matchingEnglish": 150, - "matchingEnglishPercent": 41.4 + "matchingEnglish": 149, + "matchingEnglishPercent": 41.2 }, "zh-Hans": { "totalStrings": 362, - "matchingEnglish": 124, - "matchingEnglishPercent": 34.3 + "matchingEnglish": 123, + "matchingEnglishPercent": 34 }, "zh-Hant": { "totalStrings": 362, @@ -315,13 +315,6 @@ "id": "droid-cli", "message": "No structured source references are recorded." }, - { - "severity": "info", - "code": "missing-sources", - "category": "clis", - "id": "gemini-cli", - "message": "No structured source references are recorded." - }, { "severity": "info", "code": "missing-sources", diff --git a/data/github-stars.json b/data/github-stars.json index fce967da..659412a2 100644 --- a/data/github-stars.json +++ b/data/github-stars.json @@ -22,6 +22,7 @@ }, "clis": { "amazon-q-developer-cli": 2, + "antigravity-cli": 1.7, "amp-cli": null, "augment-code-cli": 0.3, "claude-code-cli": 138.5, @@ -35,7 +36,7 @@ "gemini-cli": 106.1, "github-copilot-cli": 11, "gitlab-duo-cli": null, - "grok-build": null, + "grok-build": 21.6, "junie-cli": null, "kilo-code-cli": 26.4, "kimi-cli": 4.3, diff --git a/docs/DATA-HEALTH.md b/docs/DATA-HEALTH.md index dcecbed5..af69eee1 100644 --- a/docs/DATA-HEALTH.md +++ b/docs/DATA-HEALTH.md @@ -1,31 +1,31 @@ # Data Health Report -Snapshot date: 2026-07-21. Regenerate with `npm run data-health:report`. +Snapshot date: 2026-07-22. Regenerate with `npm run data-health:report`. ## Scorecard | Metric | Value | | --- | ---: | -| Manifest records | 247 | -| Records with structured sources | 149 | -| Verified records | 135 | -| Verified with complete provenance | 117 | +| Manifest records | 250 | +| Records with structured sources | 153 | +| Verified records | 139 | +| Verified with complete provenance | 121 | | Stale verified records | 0 | -| Non-English values identical to English | 1506 | +| Non-English values identical to English | 1500 | | Dangling product relationships | 0 | -| Model benchmark coverage | 9.7% | -| Products with pricing | 67/68 | -| Errors / warnings / info | 0 / 18 / 98 | +| Model benchmark coverage | 9.6% | +| Products with pricing | 68/69 | +| Errors / warnings / info | 0 / 18 / 97 | ## Category Breakdown | Category | Total | Verified | Provenance complete | Stale | | --- | ---: | ---: | ---: | ---: | | ides | 10 | 0 | 0 | 0 | -| clis | 27 | 2 | 1 | 0 | +| clis | 28 | 4 | 3 | 0 | | desktops | 12 | 0 | 0 | 0 | | extensions | 19 | 3 | 2 | 0 | -| models | 125 | 123 | 110 | 0 | +| models | 127 | 125 | 112 | 0 | | providers | 13 | 4 | 3 | 0 | | vendors | 41 | 3 | 1 | 0 | @@ -39,19 +39,19 @@ Exact English matches are a triage signal; product names and technical terms can | es | 362 | 126 | 34.8% | | fr | 362 | 136 | 37.6% | | id | 362 | 170 | 47% | -| ja | 362 | 122 | 33.7% | -| ko | 362 | 141 | 39% | -| pt | 362 | 136 | 37.6% | -| ru | 362 | 150 | 41.4% | -| tr | 362 | 150 | 41.4% | -| zh-Hans | 362 | 124 | 34.3% | +| ja | 362 | 121 | 33.4% | +| ko | 362 | 140 | 38.7% | +| pt | 362 | 135 | 37.3% | +| ru | 362 | 149 | 41.2% | +| tr | 362 | 149 | 41.2% | +| zh-Hans | 362 | 123 | 34% | | zh-Hant | 362 | 121 | 33.4% | ## Backlog by Issue Type | Issue | Count | | --- | ---: | -| missing-sources | 98 | +| missing-sources | 97 | | verified-without-provenance | 18 | ## Priority Queue diff --git a/manifests/$schemas/ref/entity.schema.json b/manifests/$schemas/ref/entity.schema.json index 844bfaa6..627e8771 100644 --- a/manifests/$schemas/ref/entity.schema.json +++ b/manifests/$schemas/ref/entity.schema.json @@ -27,6 +27,10 @@ "type": "boolean", "description": "Whether the entity has been reviewed by the AI Coding Stack team against cited sources. Legacy verified records may not yet include structured provenance." }, + "deprecated": { + "type": "boolean", + "description": "Whether the entity has been superseded or is no longer recommended for general use. Omit or set to false when no deprecation is recorded." + }, "sources": { "type": "array", "description": "Sources used to verify this entity or individual fields", diff --git a/manifests/clis/antigravity-cli.json b/manifests/clis/antigravity-cli.json new file mode 100644 index 00000000..4a20fb31 --- /dev/null +++ b/manifests/clis/antigravity-cli.json @@ -0,0 +1,151 @@ +{ + "$schema": "../$schemas/cli.schema.json", + "id": "antigravity-cli", + "name": "Antigravity CLI", + "familyId": "antigravity", + "description": "Google's terminal-first coding agent for invoking, monitoring, and orchestrating Antigravity agents with subagents, multi-file editing, tools, MCP, skills, and remote SSH support.", + "translations": { + "de": { + "description": "Googles terminalorientierter Coding-Agent zum Starten, Überwachen und Orchestrieren von Antigravity-Agenten mit Subagenten, Dateiwerkzeugen, MCP, Skills und Remote-SSH." + }, + "es": { + "description": "El agente de programación de Google para terminal permite ejecutar, supervisar y orquestar agentes de Antigravity con subagentes, edición de archivos, MCP, skills y SSH remoto." + }, + "fr": { + "description": "L'agent de codage de Google conçu pour le terminal permet de lancer, suivre et orchestrer des agents Antigravity avec sous-agents, outils de fichiers, MCP, skills et SSH distant." + }, + "id": { + "description": "Agen coding Google yang mengutamakan terminal untuk menjalankan, memantau, dan mengatur agen Antigravity dengan subagen, alat berkas, MCP, skill, dan SSH jarak jauh." + }, + "ja": { + "description": "Google のターミナル中心のコーディングエージェント。サブエージェント、複数ファイル編集、ツール、MCP、スキル、リモート SSH に対応し、Antigravity エージェントを実行・監視・統括します。" + }, + "ko": { + "description": "Google의 터미널 중심 코딩 에이전트로, 하위 에이전트, 다중 파일 편집, 도구, MCP, 스킬, 원격 SSH를 활용해 Antigravity 에이전트를 실행하고 모니터링하며 조율합니다." + }, + "pt": { + "description": "O agente de programação do Google voltado ao terminal executa, monitora e orquestra agentes Antigravity com subagentes, edição de arquivos, MCP, skills e SSH remoto." + }, + "ru": { + "description": "Терминальный ИИ-агент Google для запуска, мониторинга и оркестрации агентов Antigravity с субагентами, файловыми инструментами, MCP, навыками и удалённым SSH." + }, + "tr": { + "description": "Google'ın terminal odaklı kodlama aracısı; alt aracılar, çoklu dosya düzenleme, araçlar, MCP, beceriler ve uzak SSH ile Antigravity aracılarını çalıştırır ve yönetir." + }, + "zh-Hans": { + "description": "Google 面向终端的编程智能体,可通过子智能体、多文件编辑、工具、MCP、Skills 和远程 SSH 调用、监控并编排 Antigravity 智能体。" + }, + "zh-Hant": { + "description": "Google 面向終端的程式設計智慧體,可透過子智慧體、多檔案編輯、工具、MCP、Skills 和遠端 SSH 呼叫、監控並編排 Antigravity 智慧體。" + } + }, + "verified": true, + "sources": [ + { + "url": "https://antigravity.google/blog/introducing-google-antigravity-cli", + "title": "Introducing Google Antigravity CLI" + }, + { + "url": "https://antigravity.google/product/antigravity-cli", + "title": "Antigravity CLI product page" + }, + { + "url": "https://github.com/google-antigravity/antigravity-cli", + "title": "Antigravity CLI official repository" + }, + { + "url": "https://antigravity.google/pricing", + "title": "Google Antigravity pricing" + }, + { + "url": "https://developers.googleblog.com/an-important-update-transitioning-gemini-cli-to-antigravity-cli/", + "title": "Transitioning Gemini CLI to Antigravity CLI", + "fields": ["relatedProducts"] + } + ], + "lastVerifiedAt": "2026-07-22", + "verifiedBy": "codex-agent", + "confidence": "high", + "websiteUrl": "https://antigravity.google/product/antigravity-cli", + "docsUrl": "https://antigravity.google/docs/cli/overview", + "vendor": "Google", + "latestVersion": "1.1.5", + "githubUrl": "https://github.com/google-antigravity/antigravity-cli", + "license": "Proprietary", + "pricing": [ + { + "name": "Individual", + "value": 0, + "currency": null, + "per": "month", + "category": "Individual" + }, + { + "name": "Google AI Pro", + "value": null, + "currency": null, + "per": "month", + "category": "Individual" + }, + { + "name": "Google AI Ultra", + "value": null, + "currency": null, + "per": "month", + "category": "Individual" + }, + { + "name": "Organization", + "value": null, + "currency": null, + "per": "usage", + "category": "Enterprise" + } + ], + "resourceUrls": { + "download": "https://antigravity.google/download", + "changelog": "https://antigravity.google/changelog", + "pricing": "https://antigravity.google/pricing", + "mcp": "https://antigravity.google/docs/mcp", + "issue": "https://github.com/google-antigravity/antigravity-cli/issues" + }, + "communityUrls": { + "linkedin": null, + "twitter": "https://x.com/antigravity", + "github": "https://github.com/google-antigravity/antigravity-cli", + "youtube": null, + "discord": null, + "reddit": null, + "blog": "https://antigravity.google/blog/introducing-google-antigravity-cli" + }, + "relatedProducts": [ + { + "type": "ide", + "productId": "antigravity" + }, + { + "type": "cli", + "productId": "gemini-cli" + } + ], + "platforms": [ + { + "os": "macOS", + "installPath": "~/.local/bin/agy", + "installCommand": "curl -fsSL https://antigravity.google/cli/install.sh | bash", + "launchCommand": "agy" + }, + { + "os": "Windows", + "installPath": "C:\\Users\\\\AppData\\Local\\agy\\bin", + "installCommand": "irm https://antigravity.google/cli/install.ps1 | iex", + "launchCommand": "agy" + }, + { + "os": "Linux", + "installPath": "~/.local/bin/agy", + "installCommand": "curl -fsSL https://antigravity.google/cli/install.sh | bash", + "launchCommand": "agy" + } + ] +} diff --git a/manifests/clis/gemini-cli.json b/manifests/clis/gemini-cli.json index a8c61d9b..630e3935 100644 --- a/manifests/clis/gemini-cli.json +++ b/manifests/clis/gemini-cli.json @@ -38,21 +38,35 @@ "description": "Google 的 Gemini CLI 將先進的 AI 模型帶到您的終端。提供程式碼補全、說明、測試生成和錯誤修復,同時支援多種語言。" } }, - "verified": false, + "verified": true, + "deprecated": true, + "sources": [ + { + "url": "https://developers.googleblog.com/an-important-update-transitioning-gemini-cli-to-antigravity-cli/", + "title": "Transitioning Gemini CLI to Antigravity CLI", + "fields": ["deprecated", "pricing", "relatedProducts"] + }, + { + "url": "https://geminicli.com/docs/changelogs/latest/", + "title": "Gemini CLI latest stable release", + "fields": ["latestVersion"] + }, + { + "url": "https://github.com/google-gemini/gemini-cli", + "title": "Gemini CLI official repository", + "fields": ["githubUrl", "license", "platforms"] + } + ], + "lastVerifiedAt": "2026-07-22", + "verifiedBy": "codex-agent", + "confidence": "high", "websiteUrl": "https://geminicli.com", "docsUrl": "https://geminicli.com/docs", "vendor": "Google", - "latestVersion": "0.5.4", + "latestVersion": "0.50.0", "githubUrl": "https://github.com/google-gemini/gemini-cli", "license": "Apache-2.0", "pricing": [ - { - "name": "Individual (Free)", - "value": 0, - "currency": null, - "per": null, - "category": "Individual" - }, { "name": "Gemini Code Assist Standard", "value": null, @@ -84,7 +98,12 @@ "reddit": null, "blog": "https://cloud.google.com/blog/products/ai-machine-learning/gemini-cli-custom-slash-commands" }, - "relatedProducts": [], + "relatedProducts": [ + { + "type": "cli", + "productId": "antigravity-cli" + } + ], "platforms": [ { "os": "macOS", diff --git a/manifests/clis/grok-build.json b/manifests/clis/grok-build.json index 0db50094..e6a6a852 100644 --- a/manifests/clis/grok-build.json +++ b/manifests/clis/grok-build.json @@ -43,10 +43,21 @@ }, { "url": "https://x.ai/build/changelog", - "title": "Grok Build changelog" + "title": "Grok Build changelog", + "fields": ["latestVersion", "resourceUrls.changelog"] + }, + { + "url": "https://x.ai/news/grok-build-open-source", + "title": "Grok Build is Now Open Source", + "fields": ["githubUrl", "license"] + }, + { + "url": "https://github.com/xai-org/grok-build", + "title": "Grok Build official repository", + "fields": ["githubUrl", "license", "resourceUrls.issue", "communityUrls.github"] } ], - "lastVerifiedAt": "2026-07-21", + "lastVerifiedAt": "2026-07-22", "verifiedBy": "codex-agent", "confidence": "high", "id": "grok-build", @@ -56,8 +67,8 @@ "websiteUrl": "https://x.ai/build", "docsUrl": "https://x.ai/cli", "vendor": "xAI", - "latestVersion": "0.2.94", - "githubUrl": null, + "latestVersion": "0.2.106", + "githubUrl": "https://github.com/xai-org/grok-build", "license": "Apache-2.0", "pricing": [ { @@ -73,12 +84,12 @@ "changelog": "https://x.ai/build/changelog", "pricing": null, "mcp": null, - "issue": null + "issue": "https://github.com/xai-org/grok-build/issues" }, "communityUrls": { "linkedin": null, "twitter": "https://x.com/xai", - "github": null, + "github": "https://github.com/xai-org/grok-build", "youtube": null, "discord": null, "reddit": null, diff --git a/manifests/ides/antigravity.json b/manifests/ides/antigravity.json index 7dcb35ba..c82c0a5b 100644 --- a/manifests/ides/antigravity.json +++ b/manifests/ides/antigravity.json @@ -2,6 +2,7 @@ "$schema": "../$schemas/ide.schema.json", "id": "antigravity", "name": "Antigravity", + "familyId": "antigravity", "description": "Google's AI-powered integrated development environment (IDE) for modern software development with advanced AI capabilities.", "translations": { "zh-Hans": { @@ -84,7 +85,12 @@ "reddit": "https://www.reddit.com/r/google_antigravity", "blog": "https://antigravity.google/blog" }, - "relatedProducts": [], + "relatedProducts": [ + { + "type": "cli", + "productId": "antigravity-cli" + } + ], "platforms": [ { "os": "macOS", diff --git a/manifests/models/gemini-3-1-flash-lite.json b/manifests/models/gemini-3-1-flash-lite.json index 4b18b959..b15320f4 100644 --- a/manifests/models/gemini-3-1-flash-lite.json +++ b/manifests/models/gemini-3-1-flash-lite.json @@ -64,7 +64,7 @@ "fields": ["name", "description", "releaseDate", "lifecycle"] } ], - "lastVerifiedAt": "2026-07-20", + "lastVerifiedAt": "2026-07-22", "verifiedBy": "codex-agent", "confidence": "high", "websiteUrl": "https://deepmind.google", @@ -99,7 +99,7 @@ ] }, "releaseDate": "2026-05-07", - "lifecycle": "latest", + "lifecycle": "maintained", "knowledgeCutoff": "2025-01", "inputModalities": ["text", "image", "pdf", "audio", "video"], "outputModalities": ["text"], diff --git a/manifests/models/gemini-3-5-flash-lite.json b/manifests/models/gemini-3-5-flash-lite.json new file mode 100644 index 00000000..25b82e0e --- /dev/null +++ b/manifests/models/gemini-3-5-flash-lite.json @@ -0,0 +1,125 @@ +{ + "$schema": "../$schemas/model.schema.json", + "id": "gemini-3-5-flash-lite", + "name": "Gemini 3.5 Flash-Lite", + "description": "Google's fastest, most cost-efficient 3.5-class multimodal model for high-volume subagent, coding, document parsing, and data extraction workloads.", + "translations": { + "de": { + "description": "Googles schnellstes und kosteneffizientestes multimodales Modell der 3.5-Klasse für umfangreiche Unteragenten-, Programmier-, Dokumentanalyse- und Datenextraktionsaufgaben." + }, + "es": { + "description": "El modelo multimodal de clase 3.5 más rápido y rentable de Google para subagentes, programación, análisis de documentos y extracción de datos de gran volumen." + }, + "fr": { + "description": "Le modèle multimodal de classe 3.5 le plus rapide et économique de Google pour les sous-agents, le codage, l’analyse de documents et l’extraction de données à grande échelle." + }, + "id": { + "description": "Model multimodal kelas 3.5 tercepat dan paling hemat biaya dari Google untuk subagen, coding, penguraian dokumen, dan ekstraksi data bervolume tinggi." + }, + "ja": { + "description": "大量のサブエージェント処理、コーディング、文書解析、データ抽出向けに設計された、Google最速かつ最も費用効率の高い3.5クラスのマルチモーダルモデル。" + }, + "ko": { + "description": "대규모 하위 에이전트, 코딩, 문서 파싱 및 데이터 추출 작업을 위한 Google의 가장 빠르고 비용 효율적인 3.5급 멀티모달 모델입니다." + }, + "pt": { + "description": "O modelo multimodal de classe 3.5 mais rápido e econômico do Google para subagentes, programação, análise de documentos e extração de dados em alto volume." + }, + "ru": { + "description": "Самая быстрая и экономичная мультимодальная модель Google класса 3.5 для массовых задач субагентов, программирования, разбора документов и извлечения данных." + }, + "tr": { + "description": "Google’ın yüksek hacimli alt aracı, kodlama, belge ayrıştırma ve veri çıkarma iş yükleri için en hızlı ve uygun maliyetli 3.5 sınıfı çok modlu modeli." + }, + "zh-Hans": { + "description": "Google 速度最快、成本效益最高的 3.5 级多模态模型,面向大规模子智能体、编码、文档解析和数据抽取工作负载。" + }, + "zh-Hant": { + "description": "Google 速度最快、成本效益最高的 3.5 級多模態模型,面向大規模子智慧體、編碼、文件解析和資料擷取工作負載。" + } + }, + "verified": true, + "sources": [ + { + "url": "https://ai.google.dev/gemini-api/docs/models/gemini-3.5-flash-lite", + "title": "Gemini 3.5 Flash-Lite model documentation", + "fields": [ + "docsUrl", + "contextWindow", + "maxOutput", + "inputModalities", + "outputModalities", + "capabilities" + ] + }, + { + "url": "https://deepmind.google/models/model-cards/gemini-3-5-flash-lite/", + "title": "Gemini 3.5 Flash-Lite model card", + "fields": ["description", "knowledgeCutoff", "inputModalities", "outputModalities"] + }, + { + "url": "https://ai.google.dev/gemini-api/docs/pricing", + "title": "Gemini Developer API pricing", + "fields": ["tokenPricing"] + }, + { + "url": "https://ai.google.dev/gemini-api/docs/changelog", + "title": "Gemini API release notes", + "fields": ["name", "releaseDate", "lifecycle"] + } + ], + "lastVerifiedAt": "2026-07-22", + "verifiedBy": "codex-agent", + "confidence": "high", + "websiteUrl": "https://deepmind.google", + "docsUrl": "https://ai.google.dev/gemini-api/docs/models/gemini-3.5-flash-lite", + "vendor": "Google", + "size": null, + "contextWindow": 1048576, + "maxOutput": 65536, + "tokenPricing": { + "status": "available", + "primaryOffer": "global-standard", + "offers": [ + { + "id": "global-standard", + "currency": "USD", + "region": "global", + "serviceTier": "standard", + "effectiveFrom": null, + "effectiveTo": null, + "tiers": [ + { + "condition": null, + "rates": { + "input": 0.3, + "output": 2.5, + "cacheRead": 0.03, + "cacheWrite": null + } + } + ] + } + ] + }, + "releaseDate": "2026-07-21", + "lifecycle": "latest", + "knowledgeCutoff": "2026-03", + "inputModalities": ["text", "image", "pdf", "audio", "video"], + "outputModalities": ["text"], + "capabilities": ["function-calling", "tool-choice", "structured-outputs", "reasoning"], + "benchmarks": { + "sweBench": null, + "terminalBench": null, + "mmmu": null, + "mmmuPro": null, + "webDevArena": null, + "sciCode": null, + "liveCodeBench": null + }, + "platformUrls": { + "huggingface": null, + "artificialAnalysis": null, + "openrouter": null + } +} diff --git a/manifests/models/gemini-3-5-flash.json b/manifests/models/gemini-3-5-flash.json index 0a9d2e62..9caea42a 100644 --- a/manifests/models/gemini-3-5-flash.json +++ b/manifests/models/gemini-3-5-flash.json @@ -64,7 +64,7 @@ "fields": ["name", "description", "releaseDate", "lifecycle"] } ], - "lastVerifiedAt": "2026-07-20", + "lastVerifiedAt": "2026-07-22", "verifiedBy": "codex-agent", "confidence": "high", "websiteUrl": "https://deepmind.google", @@ -99,7 +99,7 @@ ] }, "releaseDate": "2026-05-19", - "lifecycle": "latest", + "lifecycle": "maintained", "knowledgeCutoff": "2025-01", "inputModalities": ["text", "image", "pdf", "audio", "video"], "outputModalities": ["text"], diff --git a/manifests/models/gemini-3-6-flash.json b/manifests/models/gemini-3-6-flash.json new file mode 100644 index 00000000..99affa3e --- /dev/null +++ b/manifests/models/gemini-3-6-flash.json @@ -0,0 +1,125 @@ +{ + "$schema": "../$schemas/model.schema.json", + "id": "gemini-3-6-flash", + "name": "Gemini 3.6 Flash", + "description": "Google's latest efficient frontier model for coding and agentic workflows, with improved code quality, fewer reasoning steps, multimodal input, and a 1M-token context.", + "translations": { + "de": { + "description": "Googles neuestes effizientes Frontier-Modell für Programmierung und agentische Abläufe, mit besserer Codequalität, weniger Denkschritten, multimodaler Eingabe und 1 Mio. Token Kontext." + }, + "es": { + "description": "El modelo de frontera eficiente más reciente de Google para programación y flujos agénticos, con mejor código, menos pasos de razonamiento, entrada multimodal y contexto de 1 M de tokens." + }, + "fr": { + "description": "Le dernier modèle frontière efficace de Google pour le codage et les flux agentiques, avec un meilleur code, moins d’étapes de raisonnement, une entrée multimodale et 1 M de jetons de contexte." + }, + "id": { + "description": "Model frontier efisien terbaru Google untuk coding dan alur kerja agentik, dengan kualitas kode lebih baik, langkah penalaran lebih sedikit, input multimodal, dan konteks 1 juta token." + }, + "ja": { + "description": "コーディングとエージェント型ワークフロー向けのGoogle最新高効率フロンティアモデル。コード品質を高め、推論手順を減らし、マルチモーダル入力と100万トークンのコンテキストに対応。" + }, + "ko": { + "description": "코딩 및 에이전트 워크플로를 위한 Google의 최신 고효율 프런티어 모델로, 향상된 코드 품질, 줄어든 추론 단계, 멀티모달 입력 및 100만 토큰 컨텍스트를 제공합니다." + }, + "pt": { + "description": "O mais recente modelo de fronteira eficiente do Google para programação e fluxos agênticos, com código melhor, menos etapas de raciocínio, entrada multimodal e contexto de 1 milhão de tokens." + }, + "ru": { + "description": "Новейшая эффективная передовая модель Google для программирования и агентных процессов: улучшенный код, меньше шагов рассуждения, мультимодальный ввод и контекст на 1 млн токенов." + }, + "tr": { + "description": "Google’ın kodlama ve aracı iş akışları için en yeni verimli öncü modeli; daha iyi kod kalitesi, daha az akıl yürütme adımı, çok modlu giriş ve 1 milyon token bağlam sunar." + }, + "zh-Hans": { + "description": "Google 面向编码与智能体工作流的最新高效前沿模型,具备更高的代码质量、更少的推理步骤、多模态输入和 100 万 token 上下文。" + }, + "zh-Hant": { + "description": "Google 面向編碼與智慧體工作流程的最新高效前沿模型,具備更高的程式碼品質、更少的推理步驟、多模態輸入和 100 萬 token 上下文。" + } + }, + "verified": true, + "sources": [ + { + "url": "https://ai.google.dev/gemini-api/docs/models/gemini-3.6-flash", + "title": "Gemini 3.6 Flash model documentation", + "fields": [ + "docsUrl", + "contextWindow", + "maxOutput", + "inputModalities", + "outputModalities", + "capabilities" + ] + }, + { + "url": "https://deepmind.google/models/model-cards/gemini-3-6-flash/", + "title": "Gemini 3.6 Flash model card", + "fields": ["description", "knowledgeCutoff", "inputModalities", "outputModalities"] + }, + { + "url": "https://ai.google.dev/gemini-api/docs/pricing", + "title": "Gemini Developer API pricing", + "fields": ["tokenPricing"] + }, + { + "url": "https://ai.google.dev/gemini-api/docs/changelog", + "title": "Gemini API release notes", + "fields": ["name", "releaseDate", "lifecycle"] + } + ], + "lastVerifiedAt": "2026-07-22", + "verifiedBy": "codex-agent", + "confidence": "high", + "websiteUrl": "https://deepmind.google", + "docsUrl": "https://ai.google.dev/gemini-api/docs/models/gemini-3.6-flash", + "vendor": "Google", + "size": null, + "contextWindow": 1048576, + "maxOutput": 65536, + "tokenPricing": { + "status": "available", + "primaryOffer": "global-standard", + "offers": [ + { + "id": "global-standard", + "currency": "USD", + "region": "global", + "serviceTier": "standard", + "effectiveFrom": null, + "effectiveTo": null, + "tiers": [ + { + "condition": null, + "rates": { + "input": 1.5, + "output": 7.5, + "cacheRead": 0.15, + "cacheWrite": null + } + } + ] + } + ] + }, + "releaseDate": "2026-07-21", + "lifecycle": "latest", + "knowledgeCutoff": "2026-03", + "inputModalities": ["text", "image", "pdf", "audio", "video"], + "outputModalities": ["text"], + "capabilities": ["function-calling", "tool-choice", "structured-outputs", "reasoning"], + "benchmarks": { + "sweBench": null, + "terminalBench": null, + "mmmu": null, + "mmmuPro": null, + "webDevArena": null, + "sciCode": null, + "liveCodeBench": null + }, + "platformUrls": { + "huggingface": null, + "artificialAnalysis": null, + "openrouter": null + } +} diff --git a/manifests/models/gemini-3-flash.json b/manifests/models/gemini-3-flash.json index 5e6f6bb8..49bbc991 100644 --- a/manifests/models/gemini-3-flash.json +++ b/manifests/models/gemini-3-flash.json @@ -61,7 +61,7 @@ "fields": ["name", "description", "releaseDate"] } ], - "lastVerifiedAt": "2026-07-18", + "lastVerifiedAt": "2026-07-22", "verifiedBy": "codex-agent", "confidence": "medium", "websiteUrl": "https://deepmind.google", @@ -96,7 +96,7 @@ ] }, "releaseDate": "2025-12-17", - "lifecycle": "latest", + "lifecycle": "maintained", "knowledgeCutoff": "2025-01", "inputModalities": ["text", "image", "pdf", "audio", "video"], "outputModalities": ["text"], diff --git a/src/lib/generated/clis.ts b/src/lib/generated/clis.ts index 74fb7e5f..8eef62cb 100644 --- a/src/lib/generated/clis.ts +++ b/src/lib/generated/clis.ts @@ -6,6 +6,7 @@ import AmazonQDeveloperCli from '../../../manifests/clis/amazon-q-developer-cli.json' import AmpCli from '../../../manifests/clis/amp-cli.json' +import AntigravityCli from '../../../manifests/clis/antigravity-cli.json' import AugmentCodeCli from '../../../manifests/clis/augment-code-cli.json' import ClaudeCodeCli from '../../../manifests/clis/claude-code-cli.json' import ClineCli from '../../../manifests/clis/cline-cli.json' @@ -36,6 +37,7 @@ import type { ManifestCLI } from '../../types/manifests' export const clisData = [ AmazonQDeveloperCli, AmpCli, + AntigravityCli, AugmentCodeCli, ClaudeCodeCli, ClineCli, diff --git a/src/lib/generated/metadata.ts b/src/lib/generated/metadata.ts index e3c2196f..3adbdd4f 100644 --- a/src/lib/generated/metadata.ts +++ b/src/lib/generated/metadata.ts @@ -2965,10 +2965,10 @@ export const faqMetadata: Record = { export const stackCounts: Record = { ides: 10, - clis: 27, + clis: 28, desktops: 12, extensions: 19, - models: 125, + models: 127, 'model-providers': 13, vendors: 41, } diff --git a/src/lib/generated/models.ts b/src/lib/generated/models.ts index 5e80ea0e..f2259422 100644 --- a/src/lib/generated/models.ts +++ b/src/lib/generated/models.ts @@ -53,6 +53,8 @@ import Gemini25Pro from '../../../manifests/models/gemini-2-5-pro.json' import Gemini31FlashLite from '../../../manifests/models/gemini-3-1-flash-lite.json' import Gemini31ProPreview from '../../../manifests/models/gemini-3-1-pro-preview.json' import Gemini35Flash from '../../../manifests/models/gemini-3-5-flash.json' +import Gemini35FlashLite from '../../../manifests/models/gemini-3-5-flash-lite.json' +import Gemini36Flash from '../../../manifests/models/gemini-3-6-flash.json' import Gemini3Flash from '../../../manifests/models/gemini-3-flash.json' import Gemini3Pro from '../../../manifests/models/gemini-3-pro.json' import Glm45 from '../../../manifests/models/glm-4-5.json' @@ -180,7 +182,9 @@ export const modelsData = [ Gemini25Pro, Gemini31FlashLite, Gemini31ProPreview, + Gemini35FlashLite, Gemini35Flash, + Gemini36Flash, Gemini3Flash, Gemini3Pro, Glm45, diff --git a/src/types/manifests.ts b/src/types/manifests.ts index a95e4786..16a0870f 100644 --- a/src/types/manifests.ts +++ b/src/types/manifests.ts @@ -77,6 +77,7 @@ export interface ManifestEntity { description: string translations: ManifestTranslations verified: boolean + deprecated?: boolean sources?: ManifestSource[] lastVerifiedAt?: string verifiedBy?: string | null diff --git a/translations/ja/shared.json b/translations/ja/shared.json index bd97e0e8..cdddc8f6 100644 --- a/translations/ja/shared.json +++ b/translations/ja/shared.json @@ -80,7 +80,7 @@ "totalContext": "Total Context" }, "lifecycle": { - "deprecated": "Deprecated", + "deprecated": "非推奨", "latest": "Latest", "maintained": "Maintained" }, diff --git a/translations/ko/shared.json b/translations/ko/shared.json index d6cc2f15..450bdbb5 100644 --- a/translations/ko/shared.json +++ b/translations/ko/shared.json @@ -80,7 +80,7 @@ "totalContext": "Total Context" }, "lifecycle": { - "deprecated": "Deprecated", + "deprecated": "사용 중단", "latest": "Latest", "maintained": "Maintained" }, diff --git a/translations/pt/shared.json b/translations/pt/shared.json index b7f72cb0..be30b7d1 100644 --- a/translations/pt/shared.json +++ b/translations/pt/shared.json @@ -80,7 +80,7 @@ "totalContext": "Total Context" }, "lifecycle": { - "deprecated": "Deprecated", + "deprecated": "Descontinuado", "latest": "Latest", "maintained": "Maintained" }, diff --git a/translations/ru/shared.json b/translations/ru/shared.json index c4c5d0d0..d4919b35 100644 --- a/translations/ru/shared.json +++ b/translations/ru/shared.json @@ -80,7 +80,7 @@ "totalContext": "Total Context" }, "lifecycle": { - "deprecated": "Deprecated", + "deprecated": "Устарело", "latest": "Latest", "maintained": "Maintained" }, diff --git a/translations/tr/shared.json b/translations/tr/shared.json index cc1487c4..7a6c4d3b 100644 --- a/translations/tr/shared.json +++ b/translations/tr/shared.json @@ -80,7 +80,7 @@ "totalContext": "Total Context" }, "lifecycle": { - "deprecated": "Deprecated", + "deprecated": "Kullanımdan kaldırıldı", "latest": "Latest", "maintained": "Maintained" }, diff --git a/translations/zh-Hans/shared.json b/translations/zh-Hans/shared.json index aaf389ba..6c6b94a3 100644 --- a/translations/zh-Hans/shared.json +++ b/translations/zh-Hans/shared.json @@ -80,7 +80,7 @@ "totalContext": "Total Context" }, "lifecycle": { - "deprecated": "Deprecated", + "deprecated": "已弃用", "latest": "Latest", "maintained": "Maintained" }, From 73a6b783bb2324fbc416ca4d8cceede8b0631cf7 Mon Sep 17 00:00:00 2001 From: Pan YANG Date: Wed, 22 Jul 2026 15:41:22 +0800 Subject: [PATCH 2/7] feat(ui): surface deprecated product status --- src/app/[locale]/clis/[slug]/page.tsx | 1 + src/app/[locale]/clis/page.client.tsx | 2 ++ .../[locale]/open-source-rank/page.client.tsx | 7 +++++ src/components/controls/DeprecatedBadge.tsx | 26 +++++++++++++++++++ src/components/controls/VerifiedBadge.tsx | 16 ++++++------ src/components/product/ProductHero.tsx | 4 +++ src/components/product/VendorMatrix.tsx | 24 ++++++++++++----- src/lib/landscape-data.ts | 7 +++++ tests/landscape-data.test.ts | 8 ++++++ 9 files changed, 80 insertions(+), 15 deletions(-) create mode 100644 src/components/controls/DeprecatedBadge.tsx diff --git a/src/app/[locale]/clis/[slug]/page.tsx b/src/app/[locale]/clis/[slug]/page.tsx index 9ac3a151..e0b13298 100644 --- a/src/app/[locale]/clis/[slug]/page.tsx +++ b/src/app/[locale]/clis/[slug]/page.tsx @@ -115,6 +115,7 @@ export default async function CLIPage({ category="CLI" categoryLabel={tShared('categories.singular.cli')} verified={cli.verified ?? false} + deprecated={cli.deprecated ?? false} latestVersion={cli.latestVersion} license={cli.license} githubStars={getGithubStars('clis', cli.id)} diff --git a/src/app/[locale]/clis/page.client.tsx b/src/app/[locale]/clis/page.client.tsx index 42a2a83a..acddf8d0 100644 --- a/src/app/[locale]/clis/page.client.tsx +++ b/src/app/[locale]/clis/page.client.tsx @@ -2,6 +2,7 @@ import { useTranslations } from 'next-intl' import { useMemo, useState } from 'react' +import { DeprecatedBadge } from '@/components/controls/DeprecatedBadge' import FilterSortBar from '@/components/controls/FilterSortBar' import { VerifiedBadge } from '@/components/controls/VerifiedBadge' import Footer from '@/components/Footer' @@ -142,6 +143,7 @@ export default function CLIsPageClient({ locale }: Props) {

{cli.name}

{cli.verified && } + {cli.deprecated && }
→ diff --git a/src/app/[locale]/open-source-rank/page.client.tsx b/src/app/[locale]/open-source-rank/page.client.tsx index 834c415f..3db108c1 100644 --- a/src/app/[locale]/open-source-rank/page.client.tsx +++ b/src/app/[locale]/open-source-rank/page.client.tsx @@ -2,6 +2,7 @@ import { useTranslations } from 'next-intl' import { useMemo, useState } from 'react' +import { DeprecatedBadge } from '@/components/controls/DeprecatedBadge' import { VerifiedBadge } from '@/components/controls/VerifiedBadge' import { Link } from '@/i18n/navigation' import { clisData } from '@/lib/generated/clis' @@ -21,6 +22,7 @@ type OpenSourceProject = { githubUrl: string | null websiteUrl: string | null verified?: boolean + deprecated?: boolean } function getLicenseDisplayName(license: string): string { @@ -74,6 +76,7 @@ export function OpenSourceRankPage() { githubUrl: ide.githubUrl || null, websiteUrl: ide.websiteUrl || null, verified: ide.verified ?? false, + deprecated: ide.deprecated ?? false, } if (isProprietary && hasStars) { @@ -104,6 +107,7 @@ export function OpenSourceRankPage() { githubUrl: cli.githubUrl || null, websiteUrl: cli.websiteUrl || null, verified: cli.verified ?? false, + deprecated: cli.deprecated ?? false, } if (isProprietary && hasStars) { @@ -128,6 +132,7 @@ export function OpenSourceRankPage() { githubUrl: desktop.githubUrl || null, websiteUrl: desktop.websiteUrl || null, verified: desktop.verified ?? false, + deprecated: desktop.deprecated ?? false, } if (isProprietary && hasStars) proprietary.push(project) @@ -155,6 +160,7 @@ export function OpenSourceRankPage() { githubUrl: ext.githubUrl || null, websiteUrl: ext.websiteUrl || null, verified: ext.verified ?? false, + deprecated: ext.deprecated ?? false, } if (isProprietary && hasStars) { @@ -360,6 +366,7 @@ export function OpenSourceRankPage() { {project.name} {project.verified && } + {project.deprecated && } diff --git a/src/components/controls/DeprecatedBadge.tsx b/src/components/controls/DeprecatedBadge.tsx new file mode 100644 index 00000000..581846db --- /dev/null +++ b/src/components/controls/DeprecatedBadge.tsx @@ -0,0 +1,26 @@ +import { useTranslations } from 'next-intl' + +export interface DeprecatedBadgeProps { + size?: 'sm' | 'md' | 'lg' + className?: string +} + +/** Displays a compact, localized lifecycle badge for deprecated entities. */ +export function DeprecatedBadge({ size = 'sm', className = '' }: DeprecatedBadgeProps) { + const tShared = useTranslations('shared') + const label = tShared('lifecycle.deprecated') + const sizeClasses = { + sm: 'h-4 px-1.5 text-[9px] tracking-[0.06em]', + md: 'h-[18px] px-1.5 text-[10px] tracking-[0.06em]', + lg: 'h-6 px-2 text-[11px] tracking-[0.08em]', + } + + return ( + + {label} + + ) +} diff --git a/src/components/controls/VerifiedBadge.tsx b/src/components/controls/VerifiedBadge.tsx index 13ef9743..0561acbd 100644 --- a/src/components/controls/VerifiedBadge.tsx +++ b/src/components/controls/VerifiedBadge.tsx @@ -3,9 +3,9 @@ import { BadgeCheck } from 'lucide-react' export interface VerifiedBadgeProps { /** * Size variant of the badge - * - sm: Small size for inline text (14px icon) - * - md: Medium size for list items (16px icon) - * - lg: Large size for hero sections (20px icon) + * - sm: Small size for inline text (16px icon) + * - md: Medium size for list items (18px icon) + * - lg: Large size for hero sections (24px icon) */ size?: 'sm' | 'md' | 'lg' /** @@ -15,19 +15,19 @@ export interface VerifiedBadgeProps { } /** - * VerifiedBadge component displays a badge-check icon with low-saturation green color + * VerifiedBadge component displays a badge-check icon with a restrained blue color * to indicate verified products, models, providers, or vendors. */ export function VerifiedBadge({ size = 'md', className = '' }: VerifiedBadgeProps) { const sizeClasses = { - sm: 'w-3.5 h-3.5', // 14px - md: 'w-4 h-4', // 16px - lg: 'w-5 h-5', // 20px + sm: 'size-4', // 16px + md: 'size-[18px]', // 18px + lg: 'size-6', // 24px } return ( diff --git a/src/components/product/ProductHero.tsx b/src/components/product/ProductHero.tsx index 03ea620d..f50dfb93 100644 --- a/src/components/product/ProductHero.tsx +++ b/src/components/product/ProductHero.tsx @@ -1,5 +1,6 @@ import { useTranslations } from 'next-intl' import React from 'react' +import { DeprecatedBadge } from '@/components/controls/DeprecatedBadge' import { VerifiedBadge } from '@/components/controls/VerifiedBadge' import { renderLicense } from '@/lib/license' @@ -11,6 +12,7 @@ export interface ProductHeroProps { category: 'CLI' | 'IDE' | 'DESKTOP' | 'EXTENSION' | 'PROVIDER' | 'MODEL' | 'VENDOR' categoryLabel?: string // Optional custom label for the badge verified?: boolean // Whether the product is verified + deprecated?: boolean // Whether the entity has been superseded or is no longer recommended // Metadata latestVersion?: string @@ -60,6 +62,7 @@ export function ProductHero({ category, categoryLabel, verified = false, + deprecated = false, latestVersion, license, githubStars, @@ -96,6 +99,7 @@ export function ProductHero({

{name}

{verified && } + {deprecated && }
diff --git a/src/components/product/VendorMatrix.tsx b/src/components/product/VendorMatrix.tsx index b74de64e..6eb332c9 100644 --- a/src/components/product/VendorMatrix.tsx +++ b/src/components/product/VendorMatrix.tsx @@ -2,6 +2,7 @@ import { useTranslations } from 'next-intl' import { useMemo, useState } from 'react' +import { DeprecatedBadge } from '@/components/controls/DeprecatedBadge' import { Link } from '@/i18n/navigation' import { compareVendorMatrixRowsByProducts, @@ -80,9 +81,12 @@ function MatrixCell({ products, category }: MatrixCellProps) { >
-

- {product.name} -

+
+

+ {product.name} +

+ {product.deprecated && } +
@@ -99,9 +103,12 @@ function MatrixCell({ products, category }: MatrixCellProps) { href={product.path} className="flex-1 border border-[var(--color-border)] hover:border-[var(--color-border-strong)] transition-all p-[var(--spacing-sm)] bg-[var(--color-bg-subtle)] hover:bg-[var(--color-hover)] group" > -

- {product.name} -

+
+

+ {product.name} +

+ {product.deprecated && } +
))}
@@ -146,7 +153,10 @@ function MatrixCell({ products, category }: MatrixCellProps) { >
-
{product.name}
+
+
{product.name}
+ {product.deprecated && } +
diff --git a/src/lib/landscape-data.ts b/src/lib/landscape-data.ts index aca6a3b3..34824495 100644 --- a/src/lib/landscape-data.ts +++ b/src/lib/landscape-data.ts @@ -50,6 +50,7 @@ export interface LandscapeProduct { vendor: string category: ProductCategory description: string + deprecated?: boolean websiteUrl?: string docsUrl?: string githubUrl?: string | null @@ -102,6 +103,7 @@ function ideToProduct(ide: ManifestIDE): LandscapeProduct { vendor: ide.vendor, category: 'ide', description: ide.description, + deprecated: ide.deprecated, websiteUrl: ide.websiteUrl, docsUrl: ide.docsUrl || undefined, githubUrl: ide.githubUrl, @@ -119,6 +121,7 @@ function cliToProduct(cli: ManifestCLI): LandscapeProduct { vendor: cli.vendor, category: 'cli', description: cli.description, + deprecated: cli.deprecated, websiteUrl: cli.websiteUrl, docsUrl: cli.docsUrl || undefined, githubUrl: cli.githubUrl, @@ -136,6 +139,7 @@ function desktopToProduct(desktop: ManifestDesktop): LandscapeProduct { vendor: desktop.vendor, category: 'desktop', description: desktop.description, + deprecated: desktop.deprecated, websiteUrl: desktop.websiteUrl, docsUrl: desktop.docsUrl || undefined, githubUrl: desktop.githubUrl, @@ -153,6 +157,7 @@ function extensionToProduct(ext: ManifestExtension): LandscapeProduct { vendor: ext.vendor, category: 'extension', description: ext.description, + deprecated: ext.deprecated, websiteUrl: ext.websiteUrl, docsUrl: ext.docsUrl || undefined, githubUrl: ext.githubUrl, @@ -170,6 +175,7 @@ function modelToProduct(model: ManifestModel): LandscapeProduct { vendor: model.vendor, category: 'model', description: model.description, + deprecated: model.deprecated, websiteUrl: model.websiteUrl || undefined, docsUrl: model.docsUrl || undefined, path: buildManifestPath('models', model.id), @@ -183,6 +189,7 @@ function providerToProduct(provider: ManifestProvider): LandscapeProduct { vendor: provider.vendor, category: 'provider', description: provider.description, + deprecated: provider.deprecated, websiteUrl: provider.websiteUrl, docsUrl: provider.docsUrl || undefined, githubUrl: null, // Providers don't have githubUrl in schema diff --git a/tests/landscape-data.test.ts b/tests/landscape-data.test.ts index 184fdc17..4d3c3c03 100644 --- a/tests/landscape-data.test.ts +++ b/tests/landscape-data.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest' import { + buildVendorMatrix, compareVendorMatrixRowsByProducts, LANDSCAPE_PRODUCT_CATEGORIES, type LandscapeProduct, @@ -104,4 +105,11 @@ describe('landscape matrix ordering', () => { expect([zulu, alpha].sort(compareVendorMatrixRowsByProducts)).toEqual([alpha, zulu]) }) + + it('propagates entity deprecation status to landscape products', () => { + const google = buildVendorMatrix().find(row => row.vendorId === 'google') + const geminiCli = google?.cells.cli.find(product => product.id === 'gemini-cli') + + expect(geminiCli?.deprecated).toBe(true) + }) }) From dc7740fd2db7e88612f0aef3216cba65c4d9e8d0 Mon Sep 17 00:00:00 2001 From: Pan YANG Date: Wed, 22 Jul 2026 15:42:00 +0800 Subject: [PATCH 3/7] fix(models): remove redundant card arrows --- src/app/[locale]/models/page.client.tsx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/app/[locale]/models/page.client.tsx b/src/app/[locale]/models/page.client.tsx index 57d39c13..68406e1e 100644 --- a/src/app/[locale]/models/page.client.tsx +++ b/src/app/[locale]/models/page.client.tsx @@ -138,14 +138,11 @@ export default function ModelsPageClient({ locale }: Props) { }`} > -
+

{model.name}

{model.verified && }
- - → -
From 76b112177af28960b8d41c346e5ad12e66bfdedd Mon Sep 17 00:00:00 2001 From: Pan YANG Date: Sun, 26 Jul 2026 20:11:14 +0800 Subject: [PATCH 4/7] feat(catalog): align models with intelligence index --- .../scripts/workflows/model-workflow.md | 4 + cspell.json | 18 +- data/artificial-analysis-index.json | 670 ++++++ data/changelogs.json | 1815 ++++++++++++++++- data/data-health.json | 151 +- data/github-stars.json | 3 - docs/DATA-HEALTH.md | 55 +- docs/DATA-TRUST.md | 6 + docs/PROJECT-REVIEW-2026-07-18.md | 2 +- manifests/$schemas/model.schema.json | 4 +- manifests/$schemas/vendor.schema.json | 18 + manifests/clis/deepv-code.json | 118 -- manifests/ides/codeflicker.json | 88 - manifests/models/claude-fable-5.json | 2 +- manifests/models/claude-haiku-4-5.json | 2 +- manifests/models/claude-mythos-5.json | 117 -- manifests/models/claude-opus-4-1.json | 2 +- manifests/models/claude-opus-4-5.json | 2 +- manifests/models/claude-opus-4-8.json | 2 +- manifests/models/claude-opus-4.json | 2 +- manifests/models/claude-sonnet-4-5.json | 2 +- manifests/models/claude-sonnet-4.json | 2 +- manifests/models/claude-sonnet-5.json | 2 +- manifests/models/codestral-2405.json | 98 - manifests/models/codestral-2501.json | 98 - manifests/models/codestral-2508.json | 117 -- manifests/models/composer.json | 2 +- manifests/models/deepseek-coder-v2-0724.json | 98 - manifests/models/devstral-medium-1-0.json | 98 - manifests/models/devstral-small-1-0.json | 98 - manifests/models/devstral-small-1-1.json | 98 - manifests/models/gemini-2-0-flash-lite.json | 117 -- manifests/models/gemini-3-1-flash-lite.json | 121 -- manifests/models/gemini-3-1-pro-preview.json | 2 +- manifests/models/gemini-3-5-flash.json | 2 +- manifests/models/gemini-3-flash.json | 2 +- manifests/models/gemini-3-pro.json | 2 +- manifests/models/glm-4-5-air.json | 127 ++ manifests/models/glm-4-5v.json | 127 ++ manifests/models/glm-4-7-flash.json | 127 ++ manifests/models/glm-5-turbo.json | 122 ++ manifests/models/glm-5v-turbo.json | 122 ++ manifests/models/gpt-4-1.json | 2 +- manifests/models/gpt-4o.json | 2 +- manifests/models/gpt-5-1-codex-max.json | 117 -- manifests/models/gpt-5-1-codex.json | 2 +- manifests/models/gpt-5-1.json | 2 +- manifests/models/gpt-5-2-pro.json | 117 -- manifests/models/gpt-5-2.json | 2 +- manifests/models/gpt-5-4-pro.json | 114 -- manifests/models/gpt-5-5-pro.json | 114 -- manifests/models/gpt-5-6-luna.json | 2 +- manifests/models/gpt-5-6-sol.json | 2 +- manifests/models/gpt-5-6-terra.json | 2 +- manifests/models/gpt-5-codex.json | 2 +- manifests/models/gpt-5-pro.json | 117 -- manifests/models/gpt-5.json | 2 +- manifests/models/grok-build-0-1.json | 117 -- manifests/models/grok-code-fast-1.json | 2 +- manifests/models/kat-coder-pro-v1.json | 93 - manifests/models/kimi-dev-72b.json | 98 - manifests/models/qwen3-5-plus.json | 139 -- manifests/models/qwen3-6-27b.json | 125 ++ manifests/models/qwen3-6-35b-a3b.json | 130 ++ manifests/models/qwen3-6-max-preview.json | 138 ++ manifests/models/qwen3-coder-flash.json | 148 -- manifests/models/qwen3-coder-plus.json | 93 - manifests/models/qwen3-max-2026-01-23.json | 139 -- manifests/providers/kwaikatonai.json | 61 - manifests/vendors/alibaba.json | 4 + manifests/vendors/anthropic.json | 4 + manifests/vendors/deepseek.json | 4 + manifests/vendors/google.json | 4 + manifests/vendors/meta.json | 4 + manifests/vendors/minimax.json | 4 + manifests/vendors/mistral-ai.json | 4 + manifests/vendors/moonshot.json | 4 + manifests/vendors/openai.json | 4 + manifests/vendors/orionstar.json | 52 - manifests/vendors/streamlake.json | 53 - manifests/vendors/xai.json | 4 + manifests/vendors/z-ai.json | 4 + src/lib/generated/clis.ts | 2 - src/lib/generated/ides.ts | 2 - src/lib/generated/metadata.ts | 10 +- src/lib/generated/models.ts | 60 +- src/lib/generated/providers.ts | 2 - src/lib/generated/vendors.ts | 4 - src/lib/model-intelligence-index.ts | 232 +++ src/types/manifests.ts | 4 + tests/model-intelligence-index.test.ts | 195 ++ 91 files changed, 4138 insertions(+), 3069 deletions(-) create mode 100644 data/artificial-analysis-index.json delete mode 100644 manifests/clis/deepv-code.json delete mode 100644 manifests/ides/codeflicker.json delete mode 100644 manifests/models/claude-mythos-5.json delete mode 100644 manifests/models/codestral-2405.json delete mode 100644 manifests/models/codestral-2501.json delete mode 100644 manifests/models/codestral-2508.json delete mode 100644 manifests/models/deepseek-coder-v2-0724.json delete mode 100644 manifests/models/devstral-medium-1-0.json delete mode 100644 manifests/models/devstral-small-1-0.json delete mode 100644 manifests/models/devstral-small-1-1.json delete mode 100644 manifests/models/gemini-2-0-flash-lite.json delete mode 100644 manifests/models/gemini-3-1-flash-lite.json create mode 100644 manifests/models/glm-4-5-air.json create mode 100644 manifests/models/glm-4-5v.json create mode 100644 manifests/models/glm-4-7-flash.json create mode 100644 manifests/models/glm-5-turbo.json create mode 100644 manifests/models/glm-5v-turbo.json delete mode 100644 manifests/models/gpt-5-1-codex-max.json delete mode 100644 manifests/models/gpt-5-2-pro.json delete mode 100644 manifests/models/gpt-5-4-pro.json delete mode 100644 manifests/models/gpt-5-5-pro.json delete mode 100644 manifests/models/gpt-5-pro.json delete mode 100644 manifests/models/grok-build-0-1.json delete mode 100644 manifests/models/kat-coder-pro-v1.json delete mode 100644 manifests/models/kimi-dev-72b.json delete mode 100644 manifests/models/qwen3-5-plus.json create mode 100644 manifests/models/qwen3-6-27b.json create mode 100644 manifests/models/qwen3-6-35b-a3b.json create mode 100644 manifests/models/qwen3-6-max-preview.json delete mode 100644 manifests/models/qwen3-coder-flash.json delete mode 100644 manifests/models/qwen3-coder-plus.json delete mode 100644 manifests/models/qwen3-max-2026-01-23.json delete mode 100644 manifests/providers/kwaikatonai.json delete mode 100644 manifests/vendors/orionstar.json delete mode 100644 manifests/vendors/streamlake.json create mode 100644 src/lib/model-intelligence-index.ts create mode 100644 tests/model-intelligence-index.test.ts diff --git a/.agents/skills/manifest-automation/scripts/workflows/model-workflow.md b/.agents/skills/manifest-automation/scripts/workflows/model-workflow.md index 38e6258d..d4763d70 100644 --- a/.agents/skills/manifest-automation/scripts/workflows/model-workflow.md +++ b/.agents/skills/manifest-automation/scripts/workflows/model-workflow.md @@ -39,6 +39,10 @@ Search snippets are not evidence. Open the source and verify that it describes t Strict JSON only. Do not add TODO comments, placeholder sources, or benchmark guesses. +## Catalog inclusion gate + +A new model manifest requires a published Artificial Analysis Intelligence Index result compatible with `data/artificial-analysis-index.json`. Other Artificial Analysis products, including Coding Agent Index and Agentic Index, do not satisfy this gate. The fixed legacy exception baseline is documented in `docs/DATA-TRUST.md` and must not grow. + ## Validation Run the parent skill's validation sequence. Recalculate price units manually and inspect benchmark diffs for evaluation incompatibilities. diff --git a/cspell.json b/cspell.json index 9103a7af..ce31117e 100644 --- a/cspell.json +++ b/cspell.json @@ -47,9 +47,11 @@ "Entwicklungsframework", "İçgörüleri", "Versionierungsschema", + "benchmarkları", "interoperáveis", "mengkomunikasikan", "önekiyle", + "önizlemesi", "sağlayıcılı", "ccstatusline", "API'lerle", @@ -60,7 +62,10 @@ "rovo", "rovodev", "Zcode", + "Zekâ", + "Zekâsı", "zcode", + "xhigh", "Anthropics", "BYOK", "Codestral", @@ -208,7 +213,6 @@ "desteg", "detayli", "didesain", - "dvcode", "etkileşemezlerdi", "econômico", "fortschrittlichestes", @@ -221,22 +225,16 @@ "hochkapazitatives", "hook'larını", "hrefs", + "hibrit", "Intinya", - "Kwai", - "Kwais", - "Kwai'nin", - "Kuaishou", - "kuaikatonai", "kullanin", "kullanir", "kurallarinizi", "kapsamli", "karmaik", - "kwaikatonai", - "kwaikatonai", - "Kwaikatonai", + "kwai", "kwaikat", - "KwaiKAT", + "kwaikatonai", "laboratuvari", "linkedin", "lmarena", diff --git a/data/artificial-analysis-index.json b/data/artificial-analysis-index.json new file mode 100644 index 00000000..277949b3 --- /dev/null +++ b/data/artificial-analysis-index.json @@ -0,0 +1,670 @@ +{ + "source": "Artificial Analysis", + "sourceUrl": "https://artificialanalysis.ai/leaderboards/models", + "methodologyUrl": "https://artificialanalysis.ai/methodology/intelligence-benchmarking", + "indexVersion": "4.1", + "observedAt": "2026-07-26", + "legacyMissingModelIds": ["composer", "cursor-composer-2", "cursor-composer-2-5"], + "entries": [ + { + "modelId": "claude-fable-5", + "score": 60, + "estimated": false, + "configuration": "Claude Fable 5 (with fallback)" + }, + { + "modelId": "claude-haiku-3", + "score": 4, + "estimated": true, + "configuration": "Claude 3 Haiku" + }, + { + "modelId": "claude-haiku-3-5", + "score": 12, + "estimated": false, + "configuration": "Claude 3.5 Haiku" + }, + { + "modelId": "claude-haiku-4-5", + "score": 24, + "estimated": true, + "configuration": "Claude 4.5 Haiku (Non-reasoning)" + }, + { + "modelId": "claude-opus-3", + "score": 12, + "estimated": true, + "configuration": "Claude 3 Opus" + }, + { + "modelId": "claude-opus-4", + "score": 25, + "estimated": true, + "configuration": "Claude 4 Opus (Non-reasoning)" + }, + { + "modelId": "claude-opus-4-1", + "score": 28, + "estimated": true, + "configuration": "Claude 4.1 Opus (Non-reasoning)" + }, + { + "modelId": "claude-opus-4-5", + "score": 35, + "estimated": true, + "configuration": "Claude Opus 4.5" + }, + { + "modelId": "claude-opus-4-6", + "score": 38, + "estimated": true, + "configuration": "Claude Opus 4.6 (high)" + }, + { + "modelId": "claude-opus-4-7", + "score": 54, + "estimated": false, + "configuration": "Claude Opus 4.7 (max)" + }, + { + "modelId": "claude-opus-4-8", + "score": 56, + "estimated": false, + "configuration": "Claude Opus 4.8 (max)" + }, + { + "modelId": "claude-sonnet-3", + "score": 5, + "estimated": true, + "configuration": "Claude 3 Sonnet" + }, + { + "modelId": "claude-sonnet-3-5-20240620", + "score": 8, + "estimated": true, + "configuration": "Claude 3.5 Sonnet (June 2024)" + }, + { + "modelId": "claude-sonnet-3-5-20241022", + "score": 10, + "estimated": true, + "configuration": "Claude 3.5 Sonnet (October 2024)" + }, + { + "modelId": "claude-sonnet-3-7", + "score": 24, + "estimated": true, + "configuration": "Claude 3.7 Sonnet (Non-reasoning)" + }, + { + "modelId": "claude-sonnet-4", + "score": 25, + "estimated": true, + "configuration": "Claude 4 Sonnet (Non-reasoning)" + }, + { + "modelId": "claude-sonnet-4-5", + "score": 29, + "estimated": true, + "configuration": "Claude 4.5 Sonnet (Non-reasoning)" + }, + { + "modelId": "claude-sonnet-4-6", + "score": 36, + "estimated": true, + "configuration": "Claude Sonnet 4.6 (Non-reasoning)" + }, + { + "modelId": "claude-sonnet-5", + "score": 53, + "estimated": false, + "configuration": "Claude Sonnet 5 (max)" + }, + { + "modelId": "deepseek-3-2", + "score": 32, + "estimated": false, + "configuration": "DeepSeek V3.2 (Reasoning)" + }, + { + "modelId": "deepseek-r1", + "score": 19, + "estimated": false, + "configuration": "DeepSeek R1 (January 2025)" + }, + { + "modelId": "deepseek-r1-0528", + "score": 20, + "estimated": true, + "configuration": "DeepSeek R1 0528" + }, + { + "modelId": "deepseek-v3", + "score": 14, + "estimated": false, + "configuration": "DeepSeek V3 (Dec)" + }, + { + "modelId": "deepseek-v3-1", + "score": 21, + "estimated": true, + "configuration": "DeepSeek V3.1" + }, + { + "modelId": "deepseek-v3-2-exp", + "score": 21, + "estimated": true, + "configuration": "DeepSeek V3.2 Exp (Non-reasoning)" + }, + { + "modelId": "deepseek-v3-terminus", + "score": 21, + "estimated": true, + "configuration": "DeepSeek V3.1 Terminus (Non-reasoning)" + }, + { + "modelId": "deepseek-v4-flash", + "score": 40, + "estimated": false, + "configuration": "DeepSeek V4 Flash (max)" + }, + { + "modelId": "deepseek-v4-pro", + "score": 44, + "estimated": false, + "configuration": "DeepSeek V4 Pro (max)" + }, + { + "modelId": "devstral-2", + "score": 19, + "estimated": false, + "configuration": "Devstral 2" + }, + { + "modelId": "devstral-small-2", + "score": 17, + "estimated": false, + "configuration": "Devstral Small 2" + }, + { + "modelId": "gemini-2-0-flash", + "score": 12, + "estimated": true, + "configuration": "Gemini 2.0 Flash" + }, + { + "modelId": "gemini-2-5-flash", + "score": 14, + "estimated": true, + "configuration": "Gemini 2.5 Flash" + }, + { + "modelId": "gemini-2-5-flash-lite", + "score": 7, + "estimated": true, + "configuration": "Gemini 2.5 Flash-Lite" + }, + { + "modelId": "gemini-2-5-pro", + "score": 26, + "estimated": false, + "configuration": "Gemini 2.5 Pro" + }, + { + "modelId": "gemini-3-1-pro-preview", + "score": 46, + "estimated": false, + "configuration": "Gemini 3.1 Pro Preview" + }, + { + "modelId": "gemini-3-5-flash", + "score": 50, + "estimated": false, + "configuration": "Gemini 3.5 Flash" + }, + { + "modelId": "gemini-3-5-flash-lite", + "score": 36, + "estimated": false, + "configuration": "Gemini 3.5 Flash-Lite" + }, + { + "modelId": "gemini-3-6-flash", + "score": 50, + "estimated": false, + "configuration": "Gemini 3.6 Flash" + }, + { + "modelId": "gemini-3-flash", + "score": 27, + "estimated": true, + "configuration": "Gemini 3 Flash" + }, + { + "modelId": "gemini-3-pro", + "score": 40, + "estimated": true, + "configuration": "Gemini 3 Pro Preview (high)" + }, + { + "modelId": "glm-4-5", + "score": 19, + "estimated": true, + "configuration": "GLM-4.5 (Reasoning)" + }, + { + "modelId": "glm-4-5-air", + "score": 17, + "estimated": true, + "configuration": "GLM-4.5-Air" + }, + { + "modelId": "glm-4-5v", + "score": 7, + "estimated": true, + "configuration": "GLM-4.5V (Non-reasoning)" + }, + { + "modelId": "glm-4-6", + "score": 23, + "estimated": true, + "configuration": "GLM-4.6" + }, + { + "modelId": "glm-4-6v", + "score": 11, + "estimated": true, + "configuration": "GLM-4.6V" + }, + { + "modelId": "glm-4-7", + "score": 34, + "estimated": false, + "configuration": "GLM-4.7" + }, + { + "modelId": "glm-4-7-flash", + "score": 23, + "estimated": true, + "configuration": "GLM-4.7-Flash (Reasoning)" + }, + { + "modelId": "glm-5", + "score": 40, + "estimated": true, + "configuration": "GLM-5" + }, + { + "modelId": "glm-5-turbo", + "score": 38, + "estimated": true, + "configuration": "GLM-5-Turbo" + }, + { + "modelId": "glm-5v-turbo", + "score": 34, + "estimated": true, + "configuration": "GLM-5V-Turbo (Reasoning)" + }, + { + "modelId": "glm-5-1", + "score": 40, + "estimated": false, + "configuration": "GLM-5.1" + }, + { + "modelId": "glm-5-2", + "score": 51, + "estimated": false, + "configuration": "GLM-5.2 (max)" + }, + { + "modelId": "gpt-4-1", + "score": 19, + "estimated": true, + "configuration": "GPT-4.1" + }, + { + "modelId": "gpt-4-1-mini", + "score": 15, + "estimated": false, + "configuration": "GPT-4.1 mini" + }, + { + "modelId": "gpt-4-1-nano", + "score": 10, + "estimated": false, + "configuration": "GPT-4.1 nano" + }, + { + "modelId": "gpt-4o", + "score": 11, + "estimated": true, + "configuration": "GPT-4o (Nov)" + }, + { + "modelId": "gpt-4o-mini", + "score": 7, + "estimated": true, + "configuration": "GPT-4o mini" + }, + { + "modelId": "gpt-5", + "score": 35, + "estimated": false, + "configuration": "GPT-5 (high)" + }, + { + "modelId": "gpt-5-1", + "score": 37, + "estimated": false, + "configuration": "GPT-5.1 (high)" + }, + { + "modelId": "gpt-5-1-codex", + "score": 35, + "estimated": true, + "configuration": "GPT-5.1 Codex (high)" + }, + { + "modelId": "gpt-5-1-codex-mini", + "score": 31, + "estimated": true, + "configuration": "GPT-5.1 Codex mini (high)" + }, + { + "modelId": "gpt-5-2", + "score": 42, + "estimated": true, + "configuration": "GPT-5.2 (xhigh)" + }, + { + "modelId": "gpt-5-2-codex", + "score": 40, + "estimated": true, + "configuration": "GPT-5.2 Codex (xhigh)" + }, + { + "modelId": "gpt-5-3-codex", + "score": 44, + "estimated": true, + "configuration": "GPT-5.3 Codex (xhigh)" + }, + { + "modelId": "gpt-5-4", + "score": 51, + "estimated": false, + "configuration": "GPT-5.4 (xhigh)" + }, + { + "modelId": "gpt-5-4-mini", + "score": 40, + "estimated": false, + "configuration": "GPT-5.4 mini (xhigh)" + }, + { + "modelId": "gpt-5-4-nano", + "score": 38, + "estimated": false, + "configuration": "GPT-5.4 nano (xhigh)" + }, + { + "modelId": "gpt-5-5", + "score": 55, + "estimated": false, + "configuration": "GPT-5.5 (xhigh)" + }, + { + "modelId": "gpt-5-6-luna", + "score": 51, + "estimated": false, + "configuration": "GPT-5.6 Luna (max)" + }, + { + "modelId": "gpt-5-6-sol", + "score": 59, + "estimated": false, + "configuration": "GPT-5.6 Sol (max)" + }, + { + "modelId": "gpt-5-6-terra", + "score": 55, + "estimated": false, + "configuration": "GPT-5.6 Terra (max)" + }, + { + "modelId": "gpt-5-codex", + "score": 36, + "estimated": true, + "configuration": "GPT-5 Codex (high)" + }, + { + "modelId": "gpt-5-mini", + "score": 25, + "estimated": false, + "configuration": "GPT-5 mini (high)" + }, + { + "modelId": "gpt-5-nano", + "score": 20, + "estimated": true, + "configuration": "GPT-5 nano (high)" + }, + { + "modelId": "grok-4", + "score": 33, + "estimated": true, + "configuration": "Grok 4" + }, + { + "modelId": "grok-4-1-fast", + "score": 17, + "estimated": true, + "configuration": "Grok 4.1 Fast" + }, + { + "modelId": "grok-4-20", + "score": 37, + "estimated": true, + "configuration": "Grok 4.20 0309 v2" + }, + { + "modelId": "grok-4-3", + "score": 38, + "estimated": false, + "configuration": "Grok 4.3 (high)" + }, + { + "modelId": "grok-4-5", + "score": 54, + "estimated": false, + "configuration": "Grok 4.5 (high)" + }, + { + "modelId": "grok-4-fast", + "score": 16, + "estimated": true, + "configuration": "Grok 4 Fast" + }, + { + "modelId": "grok-code-fast-1", + "score": 22, + "estimated": true, + "configuration": "Grok Code Fast 1" + }, + { + "modelId": "kimi-k2-instruct", + "score": 19, + "estimated": true, + "configuration": "Kimi K2" + }, + { + "modelId": "kimi-k2-0905", + "score": 24, + "estimated": true, + "configuration": "Kimi K2 0905" + }, + { + "modelId": "kimi-k2-5", + "score": 35, + "estimated": false, + "configuration": "Kimi K2.5" + }, + { + "modelId": "kimi-k2-6", + "score": 44, + "estimated": false, + "configuration": "Kimi K2.6" + }, + { + "modelId": "kimi-k2-7-code", + "score": 42, + "estimated": false, + "configuration": "Kimi K2.7 Code" + }, + { + "modelId": "kimi-k2-thinking", + "score": 33, + "estimated": true, + "configuration": "Kimi K2 Thinking" + }, + { + "modelId": "kimi-k3", + "score": 57, + "estimated": false, + "configuration": "Kimi K3" + }, + { + "modelId": "llama-4-maverick", + "score": 14, + "estimated": false, + "configuration": "Llama 4 Maverick" + }, + { + "modelId": "llama-4-scout", + "score": 10, + "estimated": false, + "configuration": "Llama 4 Scout" + }, + { + "modelId": "minimax-m2", + "score": 28, + "estimated": true, + "configuration": "MiniMax-M2" + }, + { + "modelId": "minimax-m2-1", + "score": 31, + "estimated": true, + "configuration": "MiniMax-M2.1" + }, + { + "modelId": "minimax-m2-5", + "score": 34, + "estimated": true, + "configuration": "MiniMax-M2.5" + }, + { + "modelId": "minimax-m2-7", + "score": 38, + "estimated": false, + "configuration": "MiniMax-M2.7" + }, + { + "modelId": "minimax-m3", + "score": 44, + "estimated": false, + "configuration": "MiniMax-M3" + }, + { + "modelId": "mistral-medium-3-5", + "score": 30, + "estimated": false, + "configuration": "Mistral Medium 3.5" + }, + { + "modelId": "mistral-small-4", + "score": 20, + "estimated": false, + "configuration": "Mistral Small 4" + }, + { + "modelId": "muse-spark-1-1", + "score": 51, + "estimated": false, + "configuration": "Muse Spark 1.1 (xhigh)" + }, + { + "modelId": "o3", + "score": 30, + "estimated": true, + "configuration": "o3" + }, + { + "modelId": "o3-mini", + "score": 19, + "estimated": true, + "configuration": "o3-mini" + }, + { + "modelId": "o4-mini", + "score": 26, + "estimated": true, + "configuration": "o4-mini (high)" + }, + { + "modelId": "qwen3-coder-30b-a3b", + "score": 14, + "estimated": true, + "configuration": "Qwen3 Coder 30B A3B Instruct" + }, + { + "modelId": "qwen3-coder-480b-a35b", + "score": 18, + "estimated": true, + "configuration": "Qwen3 Coder 480B A35B Instruct" + }, + { + "modelId": "qwen3-6-plus", + "score": 40, + "estimated": false, + "configuration": "Qwen3.6 Plus" + }, + { + "modelId": "qwen3-6-27b", + "score": 37, + "estimated": false, + "configuration": "Qwen3.6 27B (Reasoning)" + }, + { + "modelId": "qwen3-6-35b-a3b", + "score": 32, + "estimated": false, + "configuration": "Qwen3.6 35B A3B (Reasoning)" + }, + { + "modelId": "qwen3-6-max-preview", + "score": 40, + "estimated": true, + "configuration": "Qwen3.6 Max" + }, + { + "modelId": "qwen3-7-max", + "score": 46, + "estimated": false, + "configuration": "Qwen3.7 Max" + }, + { + "modelId": "qwen3-7-plus", + "score": 39, + "estimated": false, + "configuration": "Qwen3.7 Plus" + }, + { + "modelId": "qwen3-coder-next", + "score": 21, + "estimated": false, + "configuration": "Qwen3 Coder Next" + } + ] +} diff --git a/data/changelogs.json b/data/changelogs.json index ef1e1793..9d1fc837 100644 --- a/data/changelogs.json +++ b/data/changelogs.json @@ -1,10 +1,1673 @@ { "version": 1, "entries": [ + { + "id": "2026-07-26-manifest-update", + "date": "2026-07-26", + "summary": "77 manifest records changed", + "changes": [ + { + "category": "clis", + "id": "antigravity-cli", + "change": "added", + "fields": [ + "communityUrls", + "confidence", + "description", + "docsUrl", + "familyId", + "githubUrl", + "id", + "lastVerifiedAt", + "latestVersion", + "license", + "name", + "platforms", + "pricing", + "relatedProducts", + "resourceUrls", + "sources", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "clis", + "id": "deepv-code", + "change": "removed", + "fields": [ + "communityUrls", + "confidence", + "description", + "docsUrl", + "githubUrl", + "id", + "lastVerifiedAt", + "latestVersion", + "license", + "name", + "platforms", + "pricing", + "relatedProducts", + "resourceUrls", + "sources", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "clis", + "id": "gemini-cli", + "change": "updated", + "fields": [ + "latestVersion", + "pricing", + "relatedProducts", + "verified", + "confidence", + "deprecated", + "lastVerifiedAt", + "sources", + "verifiedBy" + ] + }, + { + "category": "clis", + "id": "grok-build", + "change": "updated", + "fields": [ + "communityUrls", + "githubUrl", + "lastVerifiedAt", + "latestVersion", + "resourceUrls", + "sources" + ] + }, + { + "category": "ides", + "id": "antigravity", + "change": "updated", + "fields": ["relatedProducts", "familyId"] + }, + { + "category": "ides", + "id": "codeflicker", + "change": "removed", + "fields": [ + "communityUrls", + "description", + "docsUrl", + "githubUrl", + "id", + "latestVersion", + "license", + "name", + "platforms", + "pricing", + "relatedProducts", + "resourceUrls", + "translations", + "vendor", + "verified", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "claude-fable-5", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-haiku-4-5", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-mythos-5", + "change": "removed", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "claude-opus-4", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-opus-4-1", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-opus-4-5", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-opus-4-8", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-sonnet-4", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-sonnet-4-5", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-sonnet-5", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "codestral-2405", + "change": "removed", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "codestral-2501", + "change": "removed", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "codestral-2508", + "change": "removed", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "composer", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "deepseek-coder-v2-0724", + "change": "removed", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "devstral-medium-1-0", + "change": "removed", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "devstral-small-1-0", + "change": "removed", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "devstral-small-1-1", + "change": "removed", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "gemini-2-0-flash-lite", + "change": "removed", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "gemini-3-1-flash-lite", + "change": "removed", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "gemini-3-1-pro-preview", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gemini-3-5-flash", + "change": "updated", + "fields": ["lastVerifiedAt", "lifecycle", "size"] + }, + { + "category": "models", + "id": "gemini-3-5-flash-lite", + "change": "added", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "gemini-3-6-flash", + "change": "added", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "gemini-3-flash", + "change": "updated", + "fields": ["lastVerifiedAt", "lifecycle", "size"] + }, + { + "category": "models", + "id": "gemini-3-pro", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "glm-4-5-air", + "change": "added", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "glm-4-5v", + "change": "added", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "glm-4-7-flash", + "change": "added", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "glm-5-turbo", + "change": "added", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "glm-5v-turbo", + "change": "added", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "gpt-4-1", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-4o", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5-1", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5-1-codex", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5-1-codex-max", + "change": "removed", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "gpt-5-2", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5-2-pro", + "change": "removed", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "gpt-5-4-pro", + "change": "removed", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "gpt-5-5-pro", + "change": "removed", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "gpt-5-6-luna", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5-6-sol", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5-6-terra", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5-codex", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5-pro", + "change": "removed", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "grok-build-0-1", + "change": "removed", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "grok-code-fast-1", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "kat-coder-pro-v1", + "change": "removed", + "fields": [ + "benchmarks", + "capabilities", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "tokenPricing", + "translations", + "vendor", + "verified", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "kimi-dev-72b", + "change": "removed", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "qwen3-5-plus", + "change": "removed", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "qwen3-6-27b", + "change": "added", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "qwen3-6-35b-a3b", + "change": "added", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "qwen3-6-max-preview", + "change": "added", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "deprecated", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "qwen3-coder-flash", + "change": "removed", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "qwen3-coder-plus", + "change": "removed", + "fields": [ + "benchmarks", + "capabilities", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "tokenPricing", + "translations", + "vendor", + "verified", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "qwen3-max-2026-01-23", + "change": "removed", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "providers", + "id": "kwaikatonai", + "change": "removed", + "fields": [ + "applyKeyUrl", + "communityUrls", + "description", + "docsUrl", + "id", + "name", + "platformUrls", + "translations", + "type", + "vendor", + "verified", + "websiteUrl" + ] + }, + { + "category": "vendors", + "id": "alibaba", + "change": "updated", + "fields": ["themeColor"] + }, + { + "category": "vendors", + "id": "anthropic", + "change": "updated", + "fields": ["themeColor"] + }, + { + "category": "vendors", + "id": "deepseek", + "change": "updated", + "fields": ["themeColor"] + }, + { + "category": "vendors", + "id": "google", + "change": "updated", + "fields": ["themeColor"] + }, + { + "category": "vendors", + "id": "meta", + "change": "updated", + "fields": ["themeColor"] + }, + { + "category": "vendors", + "id": "minimax", + "change": "updated", + "fields": ["themeColor"] + }, + { + "category": "vendors", + "id": "mistral-ai", + "change": "updated", + "fields": ["themeColor"] + }, + { + "category": "vendors", + "id": "moonshot", + "change": "updated", + "fields": ["themeColor"] + }, + { + "category": "vendors", + "id": "openai", + "change": "updated", + "fields": ["themeColor"] + }, + { + "category": "vendors", + "id": "orionstar", + "change": "removed", + "fields": [ + "communityUrls", + "description", + "id", + "name", + "translations", + "verified", + "websiteUrl" + ] + }, + { + "category": "vendors", + "id": "streamlake", + "change": "removed", + "fields": [ + "aliases", + "communityUrls", + "description", + "id", + "name", + "translations", + "verified", + "websiteUrl" + ] + }, + { + "category": "vendors", + "id": "xai", + "change": "updated", + "fields": ["themeColor"] + }, + { + "category": "vendors", + "id": "z-ai", + "change": "updated", + "fields": ["themeColor"] + } + ] + }, + { + "id": "2026-07-25-manifest-update", + "date": "2026-07-25", + "summary": "33 manifest records changed", + "changes": [ + { + "category": "clis", + "id": "antigravity-cli", + "change": "added", + "fields": [ + "communityUrls", + "confidence", + "description", + "docsUrl", + "familyId", + "githubUrl", + "id", + "lastVerifiedAt", + "latestVersion", + "license", + "name", + "platforms", + "pricing", + "relatedProducts", + "resourceUrls", + "sources", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "clis", + "id": "gemini-cli", + "change": "updated", + "fields": [ + "latestVersion", + "pricing", + "relatedProducts", + "verified", + "confidence", + "deprecated", + "lastVerifiedAt", + "sources", + "verifiedBy" + ] + }, + { + "category": "clis", + "id": "grok-build", + "change": "updated", + "fields": [ + "communityUrls", + "githubUrl", + "lastVerifiedAt", + "latestVersion", + "resourceUrls", + "sources" + ] + }, + { + "category": "ides", + "id": "antigravity", + "change": "updated", + "fields": ["relatedProducts", "familyId"] + }, + { + "category": "models", + "id": "claude-fable-5", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-haiku-4-5", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-opus-4", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-opus-4-1", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-opus-4-5", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-opus-4-8", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-sonnet-4", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-sonnet-4-5", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-sonnet-5", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "composer", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gemini-3-1-flash-lite", + "change": "updated", + "fields": ["lastVerifiedAt", "lifecycle", "size"] + }, + { + "category": "models", + "id": "gemini-3-1-pro-preview", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gemini-3-5-flash", + "change": "updated", + "fields": ["lastVerifiedAt", "lifecycle", "size"] + }, + { + "category": "models", + "id": "gemini-3-5-flash-lite", + "change": "added", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "gemini-3-6-flash", + "change": "added", + "fields": [ + "benchmarks", + "capabilities", + "confidence", + "contextWindow", + "description", + "docsUrl", + "id", + "inputModalities", + "knowledgeCutoff", + "lastVerifiedAt", + "lifecycle", + "maxOutput", + "name", + "outputModalities", + "platformUrls", + "releaseDate", + "size", + "sources", + "tokenPricing", + "translations", + "vendor", + "verified", + "verifiedBy", + "websiteUrl" + ] + }, + { + "category": "models", + "id": "gemini-3-flash", + "change": "updated", + "fields": ["lastVerifiedAt", "lifecycle", "size"] + }, + { + "category": "models", + "id": "gemini-3-pro", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-4-1", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-4o", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5-1", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5-1-codex", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5-2", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5-6-luna", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5-6-sol", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5-6-terra", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5-codex", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "grok-code-fast-1", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "kat-coder-pro-v1", + "change": "updated", + "fields": ["size"] + } + ] + }, { "id": "2026-07-22-manifest-update", "date": "2026-07-22", - "summary": "9 manifest records changed", + "summary": "33 manifest records changed", "changes": [ { "category": "clis", @@ -69,17 +1732,83 @@ "change": "updated", "fields": ["relatedProducts", "familyId"] }, + { + "category": "models", + "id": "claude-fable-5", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-haiku-4-5", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-opus-4", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-opus-4-1", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-opus-4-5", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-opus-4-8", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-sonnet-4", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-sonnet-4-5", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "claude-sonnet-5", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "composer", + "change": "updated", + "fields": ["size"] + }, { "category": "models", "id": "gemini-3-1-flash-lite", "change": "updated", - "fields": ["lastVerifiedAt", "lifecycle"] + "fields": ["lastVerifiedAt", "lifecycle", "size"] + }, + { + "category": "models", + "id": "gemini-3-1-pro-preview", + "change": "updated", + "fields": ["size"] }, { "category": "models", "id": "gemini-3-5-flash", "change": "updated", - "fields": ["lastVerifiedAt", "lifecycle"] + "fields": ["lastVerifiedAt", "lifecycle", "size"] }, { "category": "models", @@ -147,7 +1876,85 @@ "category": "models", "id": "gemini-3-flash", "change": "updated", - "fields": ["lastVerifiedAt", "lifecycle"] + "fields": ["lastVerifiedAt", "lifecycle", "size"] + }, + { + "category": "models", + "id": "gemini-3-pro", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-4-1", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-4o", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5-1", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5-1-codex", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5-2", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5-6-luna", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5-6-sol", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5-6-terra", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "gpt-5-codex", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "grok-code-fast-1", + "change": "updated", + "fields": ["size"] + }, + { + "category": "models", + "id": "kat-coder-pro-v1", + "change": "updated", + "fields": ["size"] } ] }, diff --git a/data/data-health.json b/data/data-health.json index f94461e9..842d409e 100644 --- a/data/data-health.json +++ b/data/data-health.json @@ -1,5 +1,5 @@ { - "asOf": "2026-07-22", + "asOf": "2026-07-26", "thresholds": { "models": 30, "providers": 30, @@ -10,29 +10,29 @@ "vendors": 90 }, "summary": { - "totalRecords": 250, - "recordsWithSources": 153, - "verifiedRecords": 139, - "provenanceComplete": 121, + "totalRecords": 231, + "recordsWithSources": 140, + "verifiedRecords": 126, + "provenanceComplete": 109, "staleVerifiedRecords": 0, - "translationPlaceholderValues": 1500, + "translationPlaceholderValues": 1520, "danglingRelationships": 0, - "modelBenchmarkCoverage": 9.6, - "productsWithPricing": 68, - "productRecords": 69, + "modelBenchmarkCoverage": 10.5, + "productsWithPricing": 66, + "productRecords": 67, "errors": 0, - "warnings": 18, - "info": 97 + "warnings": 17, + "info": 91 }, "byCategory": { "ides": { - "total": 10, + "total": 9, "verified": 0, "provenanceComplete": 0, "stale": 0 }, "clis": { - "total": 28, + "total": 27, "verified": 4, "provenanceComplete": 3, "stale": 0 @@ -50,19 +50,19 @@ "stale": 0 }, "models": { - "total": 127, - "verified": 125, - "provenanceComplete": 112, + "total": 113, + "verified": 112, + "provenanceComplete": 100, "stale": 0 }, "providers": { - "total": 13, + "total": 12, "verified": 4, "provenanceComplete": 3, "stale": 0 }, "vendors": { - "total": 41, + "total": 39, "verified": 3, "provenanceComplete": 1, "stale": 0 @@ -70,59 +70,59 @@ }, "translationsByLocale": { "de": { - "totalStrings": 362, - "matchingEnglish": 130, - "matchingEnglishPercent": 35.9 + "totalStrings": 383, + "matchingEnglish": 133, + "matchingEnglishPercent": 34.7 }, "es": { - "totalStrings": 362, - "matchingEnglish": 126, - "matchingEnglishPercent": 34.8 + "totalStrings": 383, + "matchingEnglish": 127, + "matchingEnglishPercent": 33.2 }, "fr": { - "totalStrings": 362, - "matchingEnglish": 136, - "matchingEnglishPercent": 37.6 + "totalStrings": 383, + "matchingEnglish": 137, + "matchingEnglishPercent": 35.8 }, "id": { - "totalStrings": 362, - "matchingEnglish": 170, - "matchingEnglishPercent": 47 + "totalStrings": 383, + "matchingEnglish": 171, + "matchingEnglishPercent": 44.6 }, "ja": { - "totalStrings": 362, - "matchingEnglish": 121, - "matchingEnglishPercent": 33.4 + "totalStrings": 383, + "matchingEnglish": 123, + "matchingEnglishPercent": 32.1 }, "ko": { - "totalStrings": 362, - "matchingEnglish": 140, - "matchingEnglishPercent": 38.7 + "totalStrings": 383, + "matchingEnglish": 143, + "matchingEnglishPercent": 37.3 }, "pt": { - "totalStrings": 362, - "matchingEnglish": 135, - "matchingEnglishPercent": 37.3 + "totalStrings": 383, + "matchingEnglish": 136, + "matchingEnglishPercent": 35.5 }, "ru": { - "totalStrings": 362, - "matchingEnglish": 149, - "matchingEnglishPercent": 41.2 + "totalStrings": 383, + "matchingEnglish": 150, + "matchingEnglishPercent": 39.2 }, "tr": { - "totalStrings": 362, - "matchingEnglish": 149, - "matchingEnglishPercent": 41.2 + "totalStrings": 383, + "matchingEnglish": 152, + "matchingEnglishPercent": 39.7 }, "zh-Hans": { - "totalStrings": 362, - "matchingEnglish": 123, - "matchingEnglishPercent": 34 + "totalStrings": 383, + "matchingEnglish": 125, + "matchingEnglishPercent": 32.6 }, "zh-Hant": { - "totalStrings": 362, - "matchingEnglish": 121, - "matchingEnglishPercent": 33.4 + "totalStrings": 383, + "matchingEnglish": 123, + "matchingEnglishPercent": 32.1 } }, "issues": [ @@ -224,13 +224,6 @@ "id": "qwen3-coder-480b-a35b", "message": "Verified record is missing sources, review date, reviewer, or confidence." }, - { - "severity": "warning", - "code": "verified-without-provenance", - "category": "models", - "id": "qwen3-coder-plus", - "message": "Verified record is missing sources, review date, reviewer, or confidence." - }, { "severity": "warning", "code": "verified-without-provenance", @@ -462,13 +455,6 @@ "id": "codebuddy", "message": "No structured source references are recorded." }, - { - "severity": "info", - "code": "missing-sources", - "category": "ides", - "id": "codeflicker", - "message": "No structured source references are recorded." - }, { "severity": "info", "code": "missing-sources", @@ -574,13 +560,6 @@ "id": "gpt-5-codex", "message": "No structured source references are recorded." }, - { - "severity": "info", - "code": "missing-sources", - "category": "models", - "id": "kat-coder-pro-v1", - "message": "No structured source references are recorded." - }, { "severity": "info", "code": "missing-sources", @@ -609,13 +588,6 @@ "id": "qwen3-coder-480b-a35b", "message": "No structured source references are recorded." }, - { - "severity": "info", - "code": "missing-sources", - "category": "models", - "id": "qwen3-coder-plus", - "message": "No structured source references are recorded." - }, { "severity": "info", "code": "missing-sources", @@ -630,13 +602,6 @@ "id": "deepseek", "message": "No structured source references are recorded." }, - { - "severity": "info", - "code": "missing-sources", - "category": "providers", - "id": "kwaikatonai", - "message": "No structured source references are recorded." - }, { "severity": "info", "code": "missing-sources", @@ -840,13 +805,6 @@ "id": "openrouter", "message": "No structured source references are recorded." }, - { - "severity": "info", - "code": "missing-sources", - "category": "vendors", - "id": "orionstar", - "message": "No structured source references are recorded." - }, { "severity": "info", "code": "missing-sources", @@ -882,13 +840,6 @@ "id": "sst", "message": "No structured source references are recorded." }, - { - "severity": "info", - "code": "missing-sources", - "category": "vendors", - "id": "streamlake", - "message": "No structured source references are recorded." - }, { "severity": "info", "code": "missing-sources", diff --git a/data/github-stars.json b/data/github-stars.json index 659412a2..6a56682c 100644 --- a/data/github-stars.json +++ b/data/github-stars.json @@ -31,7 +31,6 @@ "codex-cli": 100.3, "continue-cli": 35, "cursor-cli": 33.1, - "deepv-code": 0.4, "droid-cli": null, "gemini-cli": 106.1, "github-copilot-cli": 11, @@ -67,7 +66,6 @@ "ides": { "antigravity": null, "codebuddy": null, - "codeflicker": null, "cursor": 33.1, "intellij-idea": 20.4, "kiro": 4.1, @@ -82,7 +80,6 @@ "claude-sonnet-5": null, "composer": null, "deepseek-3-2": null, - "gemini-3-1-flash-lite": null, "gemini-3-1-pro-preview": null, "gemini-3-5-flash": null, "glm-4-6v": null, diff --git a/docs/DATA-HEALTH.md b/docs/DATA-HEALTH.md index af69eee1..6f3b9959 100644 --- a/docs/DATA-HEALTH.md +++ b/docs/DATA-HEALTH.md @@ -1,33 +1,33 @@ # Data Health Report -Snapshot date: 2026-07-22. Regenerate with `npm run data-health:report`. +Snapshot date: 2026-07-26. Regenerate with `npm run data-health:report`. ## Scorecard | Metric | Value | | --- | ---: | -| Manifest records | 250 | -| Records with structured sources | 153 | -| Verified records | 139 | -| Verified with complete provenance | 121 | +| Manifest records | 231 | +| Records with structured sources | 140 | +| Verified records | 126 | +| Verified with complete provenance | 109 | | Stale verified records | 0 | -| Non-English values identical to English | 1500 | +| Non-English values identical to English | 1520 | | Dangling product relationships | 0 | -| Model benchmark coverage | 9.6% | -| Products with pricing | 68/69 | -| Errors / warnings / info | 0 / 18 / 97 | +| Model benchmark coverage | 10.5% | +| Products with pricing | 66/67 | +| Errors / warnings / info | 0 / 17 / 91 | ## Category Breakdown | Category | Total | Verified | Provenance complete | Stale | | --- | ---: | ---: | ---: | ---: | -| ides | 10 | 0 | 0 | 0 | -| clis | 28 | 4 | 3 | 0 | +| ides | 9 | 0 | 0 | 0 | +| clis | 27 | 4 | 3 | 0 | | desktops | 12 | 0 | 0 | 0 | | extensions | 19 | 3 | 2 | 0 | -| models | 127 | 125 | 112 | 0 | -| providers | 13 | 4 | 3 | 0 | -| vendors | 41 | 3 | 1 | 0 | +| models | 113 | 112 | 100 | 0 | +| providers | 12 | 4 | 3 | 0 | +| vendors | 39 | 3 | 1 | 0 | ## Translation Placeholder Proxy @@ -35,24 +35,24 @@ Exact English matches are a triage signal; product names and technical terms can | Locale | Comparable strings | Exact English matches | Match rate | | --- | ---: | ---: | ---: | -| de | 362 | 130 | 35.9% | -| es | 362 | 126 | 34.8% | -| fr | 362 | 136 | 37.6% | -| id | 362 | 170 | 47% | -| ja | 362 | 121 | 33.4% | -| ko | 362 | 140 | 38.7% | -| pt | 362 | 135 | 37.3% | -| ru | 362 | 149 | 41.2% | -| tr | 362 | 149 | 41.2% | -| zh-Hans | 362 | 123 | 34% | -| zh-Hant | 362 | 121 | 33.4% | +| de | 383 | 133 | 34.7% | +| es | 383 | 127 | 33.2% | +| fr | 383 | 137 | 35.8% | +| id | 383 | 171 | 44.6% | +| ja | 383 | 123 | 32.1% | +| ko | 383 | 143 | 37.3% | +| pt | 383 | 136 | 35.5% | +| ru | 383 | 150 | 39.2% | +| tr | 383 | 152 | 39.7% | +| zh-Hans | 383 | 125 | 32.6% | +| zh-Hant | 383 | 123 | 32.1% | ## Backlog by Issue Type | Issue | Count | | --- | ---: | -| missing-sources | 97 | -| verified-without-provenance | 18 | +| missing-sources | 91 | +| verified-without-provenance | 17 | ## Priority Queue @@ -75,7 +75,6 @@ visible in the scorecards and `data/data-health.json`. | warning | verified-without-provenance | models/minimax-m2-1 | Verified record is missing sources, review date, reviewer, or confidence. | | warning | verified-without-provenance | models/qwen3-coder-30b-a3b | Verified record is missing sources, review date, reviewer, or confidence. | | warning | verified-without-provenance | models/qwen3-coder-480b-a35b | Verified record is missing sources, review date, reviewer, or confidence. | -| warning | verified-without-provenance | models/qwen3-coder-plus | Verified record is missing sources, review date, reviewer, or confidence. | | warning | verified-without-provenance | providers/siliconflow | Verified record is missing sources, review date, reviewer, or confidence. | | warning | verified-without-provenance | vendors/kilo | Verified record is missing sources, review date, reviewer, or confidence. | | warning | verified-without-provenance | vendors/siliconflow | Verified record is missing sources, review date, reviewer, or confidence. | diff --git a/docs/DATA-TRUST.md b/docs/DATA-TRUST.md index 9b542a81..d7b5db30 100644 --- a/docs/DATA-TRUST.md +++ b/docs/DATA-TRUST.md @@ -40,6 +40,12 @@ Legacy records may have `verified: true` without structured provenance because t For new entries and material updates, a `verified: true` change should include at least one authoritative source, `lastVerifiedAt`, `verifiedBy`, and `confidence`. Official product documentation and pricing pages are preferred over third-party summaries. Benchmark fields should cite the benchmark owner or an official model report. +## Model catalog inclusion + +Every new model catalog entry must have a published Artificial Analysis Intelligence Index result compatible with the index version tracked in `data/artificial-analysis-index.json`. Artificial Analysis Coding Agent Index, Agentic Index, individual benchmark scores, and provider-only measurements are different metrics and must not be substituted or mixed into the model Intelligence Index. + +`legacyMissingModelIds` records the fixed baseline of older catalog models that do not yet meet this requirement. The list may shrink when a compatible result becomes available, but must not grow. Tests reject newly added model manifests without a matching Intelligence Index entry. + ## Freshness policy Run `npm run data-health:report` after manifest or translation changes and commit both generated snapshots. CI runs `npm run data-health:check` to reject invalid or stale snapshots. diff --git a/docs/PROJECT-REVIEW-2026-07-18.md b/docs/PROJECT-REVIEW-2026-07-18.md index 9128ad64..ce81809e 100644 --- a/docs/PROJECT-REVIEW-2026-07-18.md +++ b/docs/PROJECT-REVIEW-2026-07-18.md @@ -129,7 +129,7 @@ evidence; completed items are reflected in the checklists and implementation log - `src/app/[locale]/models/compare/[models]/page.client.tsx` renders several internal keys and English-only strings directly. - Model comparison provider URLs are inferred from display names, which does not work for values - such as `Z.ai`, `KwaiKAT`, or non-provider vendors. + such as `Z.ai` or non-provider vendors. - `src/app/[locale]/models/compare/[models]/page.tsx` generates model pairs with O(n²) growth. - `.github/workflows/deploy-staging.yml` listens to the removed `develop` branch. - Stars updates are duplicated across two workflows and one workflow references an obsolete path. diff --git a/manifests/$schemas/model.schema.json b/manifests/$schemas/model.schema.json index 063d0941..bd24099b 100644 --- a/manifests/$schemas/model.schema.json +++ b/manifests/$schemas/model.schema.json @@ -12,7 +12,9 @@ "properties": { "size": { "type": ["string", "null"], - "description": "Model parameter size (e.g., '7B', '32B', '200B'), null when the vendor does not disclose it" + "minLength": 1, + "not": { "const": "Unknown" }, + "description": "Officially disclosed model parameter size (e.g., '7B', '32B', '200B'); null when the vendor does not disclose it. Placeholder strings such as 'Unknown' are forbidden." }, "contextWindow": { "type": "number", diff --git a/manifests/$schemas/vendor.schema.json b/manifests/$schemas/vendor.schema.json index 61130370..020cd38d 100644 --- a/manifests/$schemas/vendor.schema.json +++ b/manifests/$schemas/vendor.schema.json @@ -19,6 +19,24 @@ }, "uniqueItems": true }, + "themeColor": { + "type": "object", + "description": "Curated default UI accent colors associated with this vendor", + "properties": { + "light": { + "type": "string", + "description": "Accent color rendered on the light theme", + "pattern": "^#[0-9A-Fa-f]{6}$" + }, + "dark": { + "type": "string", + "description": "Accent color rendered on the dark theme", + "pattern": "^#[0-9A-Fa-f]{6}$" + } + }, + "required": ["light", "dark"], + "additionalProperties": false + }, "communityUrls": { "$ref": "./ref/community-urls.schema.json" } diff --git a/manifests/clis/deepv-code.json b/manifests/clis/deepv-code.json deleted file mode 100644 index 00faa0bb..00000000 --- a/manifests/clis/deepv-code.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "$schema": "../$schemas/cli.schema.json", - "id": "deepv-code", - "name": "DeepV Code", - "description": "Open-source AI-powered intelligent software engineering assistant designed to code smarter and ship faster. Integrates multiple leading LLM capabilities directly in your terminal with one command.", - "translations": { - "zh-Hans": { - "description": "开源 AI 驱动的智能软件工程助手,旨在更智能地编码和更快地交付。通过一个命令直接在终端中集成多个领先的 LLM 功能。" - }, - "de": { - "description": "Open-Source AI-Assistent für intelligentes Software-Engineering. Integriert führende LLM-Funktionen direkt in Ihr Terminal mit einem Befehl." - }, - "ko": { - "description": "더 스마트하게 코딩하고 더 빠르게 배포하도록 설계된 오픈소스 AI 기반 지능형 소프트웨어 엔지니어링 어시스턴트. 하나의 명령으로 터미널에서 직접 여러 주요 LLM 기능을 통합합니다." - }, - "es": { - "description": "Asistente ingenieria software open source IA. Disenado para codificar mas inteligente y enviar mas rapido. Integra capacidades LLM directamente en terminal." - }, - "fr": { - "description": "Assistant ingenierie logicielle open source IA. Concu pour coder plus intelligemment et expedier plus rapidement. Integre capacites LLM directement en terminal." - }, - "id": { - "description": "Asisten rekayasa perangkat lunak cerdas open source AI. Dirancang untuk coding lebih cerdas dan mengirim lebih cepat. Integrasikan kemampuan LLM langsung di terminal." - }, - "ja": { - "description": "よりスマートにコーディングし、より迅速に成果を出すように設計されたオープンソースAI駆動のインテリジェントソフトウェアエンジニアリングアシスタント。1つのコマンドでターミナルに直接複数の最先端LLM機能を統合します。" - }, - "pt": { - "description": "Assistente engenharia software open source IA. Desenhado para codificar mais inteligente e enviar mais rapidamente. Integra capacidades LLM diretamente no terminal." - }, - "ru": { - "description": "Интеллектуальный помощник программной инженерии на базе ИИ, для умного кодирования и быстрой доставки. Интегрирует ведущие возможности LLM прямо в терминал одной командой." - }, - "tr": { - "description": "Acik kaynakli yazilim muhendisligi yardimcisi. Daha akilli kodlama ve hizli teslimat icin tasarlanmis. LLM yeteneklerini dogrudan terminalinize entegre eder." - }, - "zh-Hant": { - "description": "開源 AI 驅動的智慧軟體工程助手,旨在更智慧地編碼和更快地交付。透過一個命令直接在終端中整合多個領先的 LLM 功能。" - } - }, - "verified": false, - "sources": [ - { - "url": "https://github.com/OrionStarAI/EasyCode", - "title": "Easy Code repository (formerly DeepV Code)", - "fields": ["githubUrl", "license", "resourceUrls.issue"] - } - ], - "lastVerifiedAt": "2026-07-21", - "verifiedBy": "codex-agent", - "confidence": "medium", - "websiteUrl": "https://dvcode.deepvlab.ai", - "docsUrl": "https://deepvcode.com/guides", - "vendor": "OrionStar", - "latestVersion": "0.1.0", - "githubUrl": "https://github.com/OrionStarAI/EasyCode", - "license": "Apache-2.0", - "pricing": [ - { - "name": "Free Trial", - "value": 0, - "currency": "USD", - "per": "7 Days", - "category": "Individual" - }, - { - "name": "Basic", - "value": 9.9, - "currency": "USD", - "per": "30 Days", - "category": "Individual" - }, - { - "name": "Pro Max", - "value": 599, - "currency": "USD", - "per": "30 Days", - "category": "Individual" - } - ], - "resourceUrls": { - "download": "https://dvcode.deepvlab.ai/zh/install", - "changelog": null, - "pricing": "https://dvcode.deepvlab.ai/pricing", - "mcp": null, - "issue": "https://github.com/OrionStarAI/EasyCode/issues" - }, - "communityUrls": { - "linkedin": null, - "twitter": null, - "github": "https://github.com/OrionStarAI", - "youtube": null, - "discord": null, - "reddit": null, - "blog": null - }, - "relatedProducts": [], - "platforms": [ - { - "os": "macOS", - "installCommand": "npm install -g deepv-code", - "launchCommand": "dvcode", - "installPath": null - }, - { - "os": "Windows", - "installCommand": "npm install -g deepv-code", - "launchCommand": "dvcode", - "installPath": null - }, - { - "os": "Linux", - "installCommand": "npm install -g deepv-code", - "launchCommand": "dvcode", - "installPath": null - } - ] -} diff --git a/manifests/ides/codeflicker.json b/manifests/ides/codeflicker.json deleted file mode 100644 index 8031d3b6..00000000 --- a/manifests/ides/codeflicker.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "$schema": "../$schemas/ide.schema.json", - "id": "codeflicker", - "name": "CodeFlicker", - "description": "An AI-powered intelligent code editor designed to unleash your coding imagination with advanced AI assistance.", - "translations": { - "zh-Hans": { - "description": "由人工智能驱动的智能代码编辑器,旨在释放您的代码想象力,提供先进的AI辅助功能。" - }, - "de": { - "description": "Eine leichtgewichtige IDE mit AI-Integration für schnelles Prototyping und agile Entwicklung." - }, - "ko": { - "description": "고급 AI 지원 기능을 제공하여 코딩 상상력을 자유롭게 펼칠 수 있도록 설계된 AI 기반 지능형 코드 편집기입니다." - }, - "es": { - "description": "Un editor de código inteligente impulsado por IA diseñado para desatar tu imaginación de codificación con asistencia avanzada de IA." - }, - "fr": { - "description": "Un éditeur de code intelligent propulsé par l'IA conçu pour libérer votre imagination de codage avec une assistance avancée de l'IA." - }, - "id": { - "description": "Editor kode cerdas bertenaga AI yang dirancang untuk membebaskan imajinasi pengkodean Anda dengan bantuan AI canggih." - }, - "ja": { - "description": "高度なAIアシスタンスでコーディングの想像力を解き放つように設計された、AI搭載のインテリジェントコードエディタ。" - }, - "pt": { - "description": "Um editor de código inteligente movido por IA projetado para liberar sua imaginação de codificação com assistência avançada de IA." - }, - "ru": { - "description": "Интеллектуальный редактор кода на базе ИИ, созданный для раскрытия вашего кодерского воображения с помощью расширенной помощи ИИ." - }, - "tr": { - "description": "Gelişmiş AI desteği ile kodlama hayal gücünüzü serbest bırakmak için tasarlanmış, destekli bir akıllı kod düzenleyici." - }, - "zh-Hant": { - "description": "由人工智能驅動的智能代碼編輯器,旨在釋放您的代碼想像力,提供先進的AI輔助功能。" - } - }, - "verified": false, - "websiteUrl": "https://www.codeflicker.ai", - "docsUrl": "https://www.codeflicker.ai/docs", - "vendor": "StreamLake", - "latestVersion": "0.2.0", - "githubUrl": null, - "license": "Proprietary", - "pricing": [ - { - "name": "Free", - "value": 0, - "currency": null, - "per": null, - "category": "Individual" - } - ], - "resourceUrls": { - "download": "https://www.codeflicker.ai/download", - "changelog": "https://www.codeflicker.ai/docs/changelog.html", - "pricing": null, - "mcp": null, - "issue": null - }, - "communityUrls": { - "linkedin": null, - "twitter": "https://x.com/CodeFlicker_ai", - "github": null, - "youtube": null, - "discord": "https://discord.gg/rVdpZS9D3C", - "reddit": null, - "blog": null - }, - "relatedProducts": [], - "platforms": [ - { - "os": "macOS", - "installCommand": null, - "launchCommand": null, - "installPath": null - }, - { - "os": "Windows", - "installCommand": null, - "launchCommand": null, - "installPath": null - } - ] -} diff --git a/manifests/models/claude-fable-5.json b/manifests/models/claude-fable-5.json index 04c81fb4..3569454d 100644 --- a/manifests/models/claude-fable-5.json +++ b/manifests/models/claude-fable-5.json @@ -66,7 +66,7 @@ "websiteUrl": "https://www.anthropic.com", "docsUrl": "https://platform.claude.com/docs/en/about-claude/models/overview", "vendor": "Anthropic", - "size": "Unknown", + "size": null, "contextWindow": 1000000, "maxOutput": 128000, "tokenPricing": { diff --git a/manifests/models/claude-haiku-4-5.json b/manifests/models/claude-haiku-4-5.json index ca89412f..36a912c2 100644 --- a/manifests/models/claude-haiku-4-5.json +++ b/manifests/models/claude-haiku-4-5.json @@ -71,7 +71,7 @@ "websiteUrl": "https://www.anthropic.com", "docsUrl": "https://platform.claude.com/docs/en/about-claude/models/overview", "vendor": "Anthropic", - "size": "Unknown", + "size": null, "contextWindow": 200000, "maxOutput": 64000, "tokenPricing": { diff --git a/manifests/models/claude-mythos-5.json b/manifests/models/claude-mythos-5.json deleted file mode 100644 index cbdcda4d..00000000 --- a/manifests/models/claude-mythos-5.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "$schema": "../$schemas/model.schema.json", - "id": "claude-mythos-5", - "name": "Claude Mythos 5", - "description": "Anthropic's limited-availability model for approved Project Glasswing customers, focused on advanced defensive cybersecurity and complex agentic work.", - "translations": { - "de": { - "description": "Anthropics Modell mit begrenzter Verfügbarkeit für genehmigte Project-Glasswing-Kunden, fokussiert auf fortgeschrittene defensive Cybersicherheit und komplexe Agentenarbeit." - }, - "es": { - "description": "El modelo de disponibilidad limitada de Anthropic para clientes aprobados de Project Glasswing, centrado en ciberseguridad defensiva avanzada y trabajo agéntico complejo." - }, - "fr": { - "description": "Le modèle à disponibilité limitée d’Anthropic pour les clients approuvés de Project Glasswing, axé sur la cybersécurité défensive avancée et les agents complexes." - }, - "id": { - "description": "Model Anthropic dengan ketersediaan terbatas bagi pelanggan Project Glasswing yang disetujui, berfokus pada keamanan siber defensif dan pekerjaan agentik kompleks." - }, - "ja": { - "description": "Project Glasswingの承認顧客向けに限定提供され、高度な防御的サイバーセキュリティと複雑なエージェント作業に特化したAnthropicモデル。" - }, - "ko": { - "description": "승인된 Project Glasswing 고객에게 제한 제공되며 고급 방어 사이버 보안과 복잡한 에이전트 작업에 중점을 둔 Anthropic 모델입니다." - }, - "pt": { - "description": "O modelo de disponibilidade limitada da Anthropic para clientes aprovados do Project Glasswing, focado em cibersegurança defensiva avançada e trabalho agêntico complexo." - }, - "ru": { - "description": "Модель Anthropic с ограниченным доступом для одобренных клиентов Project Glasswing, ориентированная на защитную кибербезопасность и сложные агентные задачи." - }, - "tr": { - "description": "Anthropic'in onaylı Project Glasswing müşterilerine sınırlı sunulan, gelişmiş savunma siber güvenliği ve karmaşık aracı çalışmalara odaklı modeli." - }, - "zh-Hans": { - "description": "Anthropic 面向获批 Project Glasswing 客户限量提供的模型,专注于高级防御性网络安全和复杂智能体工作。" - }, - "zh-Hant": { - "description": "Anthropic 面向獲批 Project Glasswing 客戶限量提供的模型,專注於高階防禦性網路安全和複雜智慧體工作。" - } - }, - "verified": true, - "sources": [ - { - "url": "https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5", - "title": "Introducing Claude Fable 5 and Claude Mythos 5", - "fields": [ - "name", - "description", - "releaseDate", - "lifecycle", - "inputModalities", - "outputModalities", - "capabilities" - ] - }, - { - "url": "https://platform.claude.com/docs/en/about-claude/models/overview", - "title": "Claude models overview", - "fields": ["docsUrl", "contextWindow", "maxOutput", "knowledgeCutoff"] - }, - { - "url": "https://platform.claude.com/docs/en/about-claude/pricing", - "title": "Claude API pricing", - "fields": ["tokenPricing"] - } - ], - "lastVerifiedAt": "2026-07-21", - "verifiedBy": "codex-agent", - "confidence": "high", - "websiteUrl": "https://www.anthropic.com", - "docsUrl": "https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5", - "vendor": "Anthropic", - "size": null, - "contextWindow": 1000000, - "maxOutput": 128000, - "tokenPricing": { - "status": "available", - "primaryOffer": "global-standard", - "offers": [ - { - "id": "global-standard", - "currency": "USD", - "region": "global", - "serviceTier": "standard", - "effectiveFrom": null, - "effectiveTo": null, - "tiers": [ - { - "condition": null, - "rates": { - "input": 10, - "output": 50, - "cacheRead": 1, - "cacheWrite": null - } - } - ] - } - ] - }, - "releaseDate": "2026-06-09", - "lifecycle": "latest", - "knowledgeCutoff": "2026-01", - "inputModalities": ["text", "image", "pdf"], - "outputModalities": ["text"], - "capabilities": ["function-calling", "tool-choice", "structured-outputs", "reasoning"], - "benchmarks": { - "sweBench": null, - "terminalBench": null, - "mmmu": null, - "mmmuPro": null, - "webDevArena": null, - "sciCode": null, - "liveCodeBench": null - }, - "platformUrls": { "huggingface": null, "artificialAnalysis": null, "openrouter": null } -} diff --git a/manifests/models/claude-opus-4-1.json b/manifests/models/claude-opus-4-1.json index 8b045139..c64fa916 100644 --- a/manifests/models/claude-opus-4-1.json +++ b/manifests/models/claude-opus-4-1.json @@ -52,7 +52,7 @@ "websiteUrl": "https://www.anthropic.com", "docsUrl": "https://docs.anthropic.com/claude/docs/models-overview", "vendor": "Anthropic", - "size": "Unknown", + "size": null, "contextWindow": 200000, "maxOutput": 32000, "tokenPricing": { diff --git a/manifests/models/claude-opus-4-5.json b/manifests/models/claude-opus-4-5.json index 2ece8810..1ea0d09e 100644 --- a/manifests/models/claude-opus-4-5.json +++ b/manifests/models/claude-opus-4-5.json @@ -52,7 +52,7 @@ "websiteUrl": "https://www.anthropic.com", "docsUrl": "https://docs.anthropic.com/claude/docs/models-overview", "vendor": "Anthropic", - "size": "Unknown", + "size": null, "contextWindow": 200000, "maxOutput": 64000, "tokenPricing": { diff --git a/manifests/models/claude-opus-4-8.json b/manifests/models/claude-opus-4-8.json index d2f0dc95..c4a1263a 100644 --- a/manifests/models/claude-opus-4-8.json +++ b/manifests/models/claude-opus-4-8.json @@ -66,7 +66,7 @@ "websiteUrl": "https://www.anthropic.com", "docsUrl": "https://platform.claude.com/docs/en/about-claude/models/whats-new-claude-4-8", "vendor": "Anthropic", - "size": "Unknown", + "size": null, "contextWindow": 1000000, "maxOutput": 128000, "tokenPricing": { diff --git a/manifests/models/claude-opus-4.json b/manifests/models/claude-opus-4.json index 9a45a0e6..3aa15822 100644 --- a/manifests/models/claude-opus-4.json +++ b/manifests/models/claude-opus-4.json @@ -52,7 +52,7 @@ "websiteUrl": "https://www.anthropic.com", "docsUrl": "https://docs.anthropic.com/claude/docs/models-overview", "vendor": "Anthropic", - "size": "Unknown", + "size": null, "contextWindow": 200000, "maxOutput": 32000, "tokenPricing": { diff --git a/manifests/models/claude-sonnet-4-5.json b/manifests/models/claude-sonnet-4-5.json index c756cc79..2d665cbd 100644 --- a/manifests/models/claude-sonnet-4-5.json +++ b/manifests/models/claude-sonnet-4-5.json @@ -52,7 +52,7 @@ "websiteUrl": "https://www.anthropic.com", "docsUrl": "https://docs.anthropic.com/claude/docs/models-overview", "vendor": "Anthropic", - "size": "Unknown", + "size": null, "contextWindow": 200000, "maxOutput": 64000, "tokenPricing": { diff --git a/manifests/models/claude-sonnet-4.json b/manifests/models/claude-sonnet-4.json index 4766dc36..05dcfb46 100644 --- a/manifests/models/claude-sonnet-4.json +++ b/manifests/models/claude-sonnet-4.json @@ -52,7 +52,7 @@ "websiteUrl": "https://www.anthropic.com", "docsUrl": "https://docs.anthropic.com/claude/docs/models-overview", "vendor": "Anthropic", - "size": "Unknown", + "size": null, "contextWindow": 200000, "maxOutput": 64000, "tokenPricing": { diff --git a/manifests/models/claude-sonnet-5.json b/manifests/models/claude-sonnet-5.json index 88817dbc..32031566 100644 --- a/manifests/models/claude-sonnet-5.json +++ b/manifests/models/claude-sonnet-5.json @@ -66,7 +66,7 @@ "websiteUrl": "https://www.anthropic.com", "docsUrl": "https://platform.claude.com/docs/en/about-claude/models/whats-new-sonnet-5", "vendor": "Anthropic", - "size": "Unknown", + "size": null, "contextWindow": 1000000, "maxOutput": 128000, "tokenPricing": { diff --git a/manifests/models/codestral-2405.json b/manifests/models/codestral-2405.json deleted file mode 100644 index 65dabd98..00000000 --- a/manifests/models/codestral-2405.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "$schema": "../$schemas/model.schema.json", - "id": "codestral-2405", - "name": "Codestral 24.05", - "description": "First Codestral coding and fill-in-the-middle model, released as a 22B open-weight checkpoint.", - "translations": { - "zh-Hans": { - "description": "Codestral 24.05 是 Mistral 发布的独立模型版本,具备明确的编程或软件工程能力。" - }, - "de": { - "description": "Codestral 24.05 ist eine eigenständige Modellversion von Mistral mit klar ausgewiesenen Fähigkeiten für Programmierung oder Softwareentwicklung." - }, - "es": { - "description": "Codestral 24.05 es una versión de modelo independiente de Mistral con capacidades explícitas de programación o ingeniería de software." - }, - "fr": { - "description": "Codestral 24.05 est une version de modèle distincte de Mistral, dotée de capacités explicites en programmation ou en génie logiciel." - }, - "id": { - "description": "Codestral 24.05 adalah versi model mandiri dari Mistral dengan kemampuan pemrograman atau rekayasa perangkat lunak yang dinyatakan secara jelas." - }, - "ja": { - "description": "Codestral 24.05 は Mistral が公開した独立したモデル版で、プログラミングまたはソフトウェアエンジニアリング能力を明示しています。" - }, - "ko": { - "description": "Codestral 24.05은(는) Mistral가 공개한 독립 모델 버전으로, 프로그래밍 또는 소프트웨어 엔지니어링 기능을 명시적으로 제공합니다." - }, - "pt": { - "description": "Codestral 24.05 é uma versão de modelo independente da Mistral, com capacidades explícitas de programação ou engenharia de software." - }, - "ru": { - "description": "Codestral 24.05 — самостоятельная версия модели от Mistral с явно заявленными возможностями программирования или разработки ПО." - }, - "tr": { - "description": "Codestral 24.05, Mistral tarafından yayımlanan ve açıkça belirtilmiş programlama veya yazılım mühendisliği yeteneklerine sahip bağımsız bir model sürümüdür." - }, - "zh-Hant": { - "description": "Codestral 24.05 是 Mistral 發布的獨立模型版本,具備明確的程式設計或軟體工程能力。" - } - }, - "verified": true, - "sources": [ - { - "url": "https://docs.mistral.ai/models/model-cards/codestral-24-05", - "title": "Codestral 24.05 official documentation", - "fields": [ - "name", - "description", - "docsUrl", - "size", - "contextWindow", - "maxOutput", - "tokenPricing", - "releaseDate", - "lifecycle", - "knowledgeCutoff", - "inputModalities", - "outputModalities", - "capabilities" - ] - } - ], - "lastVerifiedAt": "2026-07-21", - "verifiedBy": "codex-agent", - "confidence": "high", - "websiteUrl": "https://mistral.ai", - "docsUrl": "https://docs.mistral.ai/models/model-cards/codestral-24-05", - "vendor": "Mistral AI", - "size": "22B", - "contextWindow": 32000, - "maxOutput": null, - "tokenPricing": { - "status": "unavailable", - "reason": "historical-price-unverified", - "primaryOffer": null, - "offers": [] - }, - "releaseDate": "2024-05-29", - "lifecycle": "deprecated", - "knowledgeCutoff": null, - "inputModalities": ["text"], - "outputModalities": ["text"], - "capabilities": [], - "benchmarks": { - "sweBench": null, - "terminalBench": null, - "mmmu": null, - "mmmuPro": null, - "webDevArena": null, - "sciCode": null, - "liveCodeBench": null - }, - "platformUrls": { - "huggingface": null, - "artificialAnalysis": null, - "openrouter": null - } -} diff --git a/manifests/models/codestral-2501.json b/manifests/models/codestral-2501.json deleted file mode 100644 index 672d6934..00000000 --- a/manifests/models/codestral-2501.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "$schema": "../$schemas/model.schema.json", - "id": "codestral-2501", - "name": "Codestral 25.01", - "description": "Codestral snapshot for code completion, correction, test generation, and fill-in-the-middle workflows.", - "translations": { - "zh-Hans": { - "description": "Codestral 25.01 是 Mistral 发布的独立模型版本,具备明确的编程或软件工程能力。" - }, - "de": { - "description": "Codestral 25.01 ist eine eigenständige Modellversion von Mistral mit klar ausgewiesenen Fähigkeiten für Programmierung oder Softwareentwicklung." - }, - "es": { - "description": "Codestral 25.01 es una versión de modelo independiente de Mistral con capacidades explícitas de programación o ingeniería de software." - }, - "fr": { - "description": "Codestral 25.01 est une version de modèle distincte de Mistral, dotée de capacités explicites en programmation ou en génie logiciel." - }, - "id": { - "description": "Codestral 25.01 adalah versi model mandiri dari Mistral dengan kemampuan pemrograman atau rekayasa perangkat lunak yang dinyatakan secara jelas." - }, - "ja": { - "description": "Codestral 25.01 は Mistral が公開した独立したモデル版で、プログラミングまたはソフトウェアエンジニアリング能力を明示しています。" - }, - "ko": { - "description": "Codestral 25.01은(는) Mistral가 공개한 독립 모델 버전으로, 프로그래밍 또는 소프트웨어 엔지니어링 기능을 명시적으로 제공합니다." - }, - "pt": { - "description": "Codestral 25.01 é uma versão de modelo independente da Mistral, com capacidades explícitas de programação ou engenharia de software." - }, - "ru": { - "description": "Codestral 25.01 — самостоятельная версия модели от Mistral с явно заявленными возможностями программирования или разработки ПО." - }, - "tr": { - "description": "Codestral 25.01, Mistral tarafından yayımlanan ve açıkça belirtilmiş programlama veya yazılım mühendisliği yeteneklerine sahip bağımsız bir model sürümüdür." - }, - "zh-Hant": { - "description": "Codestral 25.01 是 Mistral 發布的獨立模型版本,具備明確的程式設計或軟體工程能力。" - } - }, - "verified": true, - "sources": [ - { - "url": "https://docs.mistral.ai/models/model-cards/codestral-25-01", - "title": "Codestral 25.01 official documentation", - "fields": [ - "name", - "description", - "docsUrl", - "size", - "contextWindow", - "maxOutput", - "tokenPricing", - "releaseDate", - "lifecycle", - "knowledgeCutoff", - "inputModalities", - "outputModalities", - "capabilities" - ] - } - ], - "lastVerifiedAt": "2026-07-21", - "verifiedBy": "codex-agent", - "confidence": "high", - "websiteUrl": "https://mistral.ai", - "docsUrl": "https://docs.mistral.ai/models/model-cards/codestral-25-01", - "vendor": "Mistral AI", - "size": null, - "contextWindow": 262144, - "maxOutput": null, - "tokenPricing": { - "status": "unavailable", - "reason": "historical-price-unverified", - "primaryOffer": null, - "offers": [] - }, - "releaseDate": "2025-01-13", - "lifecycle": "deprecated", - "knowledgeCutoff": null, - "inputModalities": ["text"], - "outputModalities": ["text"], - "capabilities": ["function-calling", "tool-choice", "structured-outputs"], - "benchmarks": { - "sweBench": null, - "terminalBench": null, - "mmmu": null, - "mmmuPro": null, - "webDevArena": null, - "sciCode": null, - "liveCodeBench": null - }, - "platformUrls": { - "huggingface": null, - "artificialAnalysis": null, - "openrouter": null - } -} diff --git a/manifests/models/codestral-2508.json b/manifests/models/codestral-2508.json deleted file mode 100644 index c7cff01d..00000000 --- a/manifests/models/codestral-2508.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "$schema": "../$schemas/model.schema.json", - "id": "codestral-2508", - "name": "Codestral 25.08", - "description": "Current Codestral model for low-latency code completion, generation, tools, and fill-in-the-middle workflows.", - "translations": { - "zh-Hans": { - "description": "Codestral 25.08 是 Mistral 发布的独立模型版本,具备明确的编程或软件工程能力。" - }, - "de": { - "description": "Codestral 25.08 ist eine eigenständige Modellversion von Mistral mit klar ausgewiesenen Fähigkeiten für Programmierung oder Softwareentwicklung." - }, - "es": { - "description": "Codestral 25.08 es una versión de modelo independiente de Mistral con capacidades explícitas de programación o ingeniería de software." - }, - "fr": { - "description": "Codestral 25.08 est une version de modèle distincte de Mistral, dotée de capacités explicites en programmation ou en génie logiciel." - }, - "id": { - "description": "Codestral 25.08 adalah versi model mandiri dari Mistral dengan kemampuan pemrograman atau rekayasa perangkat lunak yang dinyatakan secara jelas." - }, - "ja": { - "description": "Codestral 25.08 は Mistral が公開した独立したモデル版で、プログラミングまたはソフトウェアエンジニアリング能力を明示しています。" - }, - "ko": { - "description": "Codestral 25.08은(는) Mistral가 공개한 독립 모델 버전으로, 프로그래밍 또는 소프트웨어 엔지니어링 기능을 명시적으로 제공합니다." - }, - "pt": { - "description": "Codestral 25.08 é uma versão de modelo independente da Mistral, com capacidades explícitas de programação ou engenharia de software." - }, - "ru": { - "description": "Codestral 25.08 — самостоятельная версия модели от Mistral с явно заявленными возможностями программирования или разработки ПО." - }, - "tr": { - "description": "Codestral 25.08, Mistral tarafından yayımlanan ve açıkça belirtilmiş programlama veya yazılım mühendisliği yeteneklerine sahip bağımsız bir model sürümüdür." - }, - "zh-Hant": { - "description": "Codestral 25.08 是 Mistral 發布的獨立模型版本,具備明確的程式設計或軟體工程能力。" - } - }, - "verified": true, - "sources": [ - { - "url": "https://docs.mistral.ai/models/model-cards/codestral-25-08", - "title": "Codestral 25.08 official documentation", - "fields": [ - "name", - "description", - "docsUrl", - "size", - "contextWindow", - "maxOutput", - "tokenPricing", - "releaseDate", - "lifecycle", - "knowledgeCutoff", - "inputModalities", - "outputModalities", - "capabilities" - ] - } - ], - "lastVerifiedAt": "2026-07-21", - "verifiedBy": "codex-agent", - "confidence": "high", - "websiteUrl": "https://mistral.ai", - "docsUrl": "https://docs.mistral.ai/models/model-cards/codestral-25-08", - "vendor": "Mistral AI", - "size": null, - "contextWindow": 131072, - "maxOutput": null, - "tokenPricing": { - "status": "available", - "primaryOffer": "global-standard", - "offers": [ - { - "id": "global-standard", - "currency": "USD", - "region": "global", - "serviceTier": "standard", - "effectiveFrom": null, - "effectiveTo": null, - "tiers": [ - { - "condition": null, - "rates": { - "input": 0.3, - "output": 0.9, - "cacheRead": null, - "cacheWrite": null - } - } - ] - } - ] - }, - "releaseDate": "2025-07-30", - "lifecycle": "latest", - "knowledgeCutoff": null, - "inputModalities": ["text"], - "outputModalities": ["text"], - "capabilities": ["function-calling", "tool-choice", "structured-outputs"], - "benchmarks": { - "sweBench": null, - "terminalBench": null, - "mmmu": null, - "mmmuPro": null, - "webDevArena": null, - "sciCode": null, - "liveCodeBench": null - }, - "platformUrls": { - "huggingface": null, - "artificialAnalysis": null, - "openrouter": null - } -} diff --git a/manifests/models/composer.json b/manifests/models/composer.json index 8359a103..3ff9b41a 100644 --- a/manifests/models/composer.json +++ b/manifests/models/composer.json @@ -42,7 +42,7 @@ "websiteUrl": "https://cursor.com", "docsUrl": "https://cursor.com/blog/composer", "vendor": "Anysphere", - "size": "Unknown", + "size": null, "contextWindow": 128000, "maxOutput": 8000, "tokenPricing": { diff --git a/manifests/models/deepseek-coder-v2-0724.json b/manifests/models/deepseek-coder-v2-0724.json deleted file mode 100644 index 3915fa6b..00000000 --- a/manifests/models/deepseek-coder-v2-0724.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "$schema": "../$schemas/model.schema.json", - "id": "deepseek-coder-v2-0724", - "name": "DeepSeek-Coder-V2 Instruct 0724", - "description": "Open-weight MoE coding model supporting 338 programming languages, code completion, insertion, tools, and JSON output.", - "translations": { - "zh-Hans": { - "description": "DeepSeek-Coder-V2 Instruct 0724 是 DeepSeek 发布的独立模型版本,具备明确的编程或软件工程能力。" - }, - "de": { - "description": "DeepSeek-Coder-V2 Instruct 0724 ist eine eigenständige Modellversion von DeepSeek mit klar ausgewiesenen Fähigkeiten für Programmierung oder Softwareentwicklung." - }, - "es": { - "description": "DeepSeek-Coder-V2 Instruct 0724 es una versión de modelo independiente de DeepSeek con capacidades explícitas de programación o ingeniería de software." - }, - "fr": { - "description": "DeepSeek-Coder-V2 Instruct 0724 est une version de modèle distincte de DeepSeek, dotée de capacités explicites en programmation ou en génie logiciel." - }, - "id": { - "description": "DeepSeek-Coder-V2 Instruct 0724 adalah versi model mandiri dari DeepSeek dengan kemampuan pemrograman atau rekayasa perangkat lunak yang dinyatakan secara jelas." - }, - "ja": { - "description": "DeepSeek-Coder-V2 Instruct 0724 は DeepSeek が公開した独立したモデル版で、プログラミングまたはソフトウェアエンジニアリング能力を明示しています。" - }, - "ko": { - "description": "DeepSeek-Coder-V2 Instruct 0724은(는) DeepSeek가 공개한 독립 모델 버전으로, 프로그래밍 또는 소프트웨어 엔지니어링 기능을 명시적으로 제공합니다." - }, - "pt": { - "description": "DeepSeek-Coder-V2 Instruct 0724 é uma versão de modelo independente da DeepSeek, com capacidades explícitas de programação ou engenharia de software." - }, - "ru": { - "description": "DeepSeek-Coder-V2 Instruct 0724 — самостоятельная версия модели от DeepSeek с явно заявленными возможностями программирования или разработки ПО." - }, - "tr": { - "description": "DeepSeek-Coder-V2 Instruct 0724, DeepSeek tarafından yayımlanan ve açıkça belirtilmiş programlama veya yazılım mühendisliği yeteneklerine sahip bağımsız bir model sürümüdür." - }, - "zh-Hant": { - "description": "DeepSeek-Coder-V2 Instruct 0724 是 DeepSeek 發布的獨立模型版本,具備明確的程式設計或軟體工程能力。" - } - }, - "verified": true, - "sources": [ - { - "url": "https://huggingface.co/deepseek-ai/DeepSeek-Coder-V2-Instruct-0724", - "title": "DeepSeek-Coder-V2 Instruct 0724 official documentation", - "fields": [ - "name", - "description", - "docsUrl", - "size", - "contextWindow", - "maxOutput", - "tokenPricing", - "releaseDate", - "lifecycle", - "knowledgeCutoff", - "inputModalities", - "outputModalities", - "capabilities" - ] - } - ], - "lastVerifiedAt": "2026-07-21", - "verifiedBy": "codex-agent", - "confidence": "high", - "websiteUrl": "https://www.deepseek.com", - "docsUrl": "https://huggingface.co/deepseek-ai/DeepSeek-Coder-V2-Instruct-0724", - "vendor": "DeepSeek", - "size": "236B (21B active)", - "contextWindow": 128000, - "maxOutput": null, - "tokenPricing": { - "status": "not-applicable", - "reason": "open-weights-only", - "primaryOffer": null, - "offers": [] - }, - "releaseDate": "2024-07-24", - "lifecycle": "maintained", - "knowledgeCutoff": null, - "inputModalities": ["text"], - "outputModalities": ["text"], - "capabilities": ["function-calling", "tool-choice", "structured-outputs"], - "benchmarks": { - "sweBench": null, - "terminalBench": null, - "mmmu": null, - "mmmuPro": null, - "webDevArena": null, - "sciCode": null, - "liveCodeBench": null - }, - "platformUrls": { - "huggingface": "https://huggingface.co/deepseek-ai/DeepSeek-Coder-V2-Instruct-0724", - "artificialAnalysis": null, - "openrouter": null - } -} diff --git a/manifests/models/devstral-medium-1-0.json b/manifests/models/devstral-medium-1-0.json deleted file mode 100644 index c16cceb8..00000000 --- a/manifests/models/devstral-medium-1-0.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "$schema": "../$schemas/model.schema.json", - "id": "devstral-medium-1-0", - "name": "Devstral Medium 1.0", - "description": "Enterprise Devstral model for demanding software engineering agents and repository-scale development tasks.", - "translations": { - "zh-Hans": { - "description": "Devstral Medium 1.0 是 Mistral 发布的独立模型版本,具备明确的编程或软件工程能力。" - }, - "de": { - "description": "Devstral Medium 1.0 ist eine eigenständige Modellversion von Mistral mit klar ausgewiesenen Fähigkeiten für Programmierung oder Softwareentwicklung." - }, - "es": { - "description": "Devstral Medium 1.0 es una versión de modelo independiente de Mistral con capacidades explícitas de programación o ingeniería de software." - }, - "fr": { - "description": "Devstral Medium 1.0 est une version de modèle distincte de Mistral, dotée de capacités explicites en programmation ou en génie logiciel." - }, - "id": { - "description": "Devstral Medium 1.0 adalah versi model mandiri dari Mistral dengan kemampuan pemrograman atau rekayasa perangkat lunak yang dinyatakan secara jelas." - }, - "ja": { - "description": "Devstral Medium 1.0 は Mistral が公開した独立したモデル版で、プログラミングまたはソフトウェアエンジニアリング能力を明示しています。" - }, - "ko": { - "description": "Devstral Medium 1.0은(는) Mistral가 공개한 독립 모델 버전으로, 프로그래밍 또는 소프트웨어 엔지니어링 기능을 명시적으로 제공합니다." - }, - "pt": { - "description": "Devstral Medium 1.0 é uma versão de modelo independente da Mistral, com capacidades explícitas de programação ou engenharia de software." - }, - "ru": { - "description": "Devstral Medium 1.0 — самостоятельная версия модели от Mistral с явно заявленными возможностями программирования или разработки ПО." - }, - "tr": { - "description": "Devstral Medium 1.0, Mistral tarafından yayımlanan ve açıkça belirtilmiş programlama veya yazılım mühendisliği yeteneklerine sahip bağımsız bir model sürümüdür." - }, - "zh-Hant": { - "description": "Devstral Medium 1.0 是 Mistral 發布的獨立模型版本,具備明確的程式設計或軟體工程能力。" - } - }, - "verified": true, - "sources": [ - { - "url": "https://docs.mistral.ai/models/model-cards/devstral-medium-1-0-25-07", - "title": "Devstral Medium 1.0 official documentation", - "fields": [ - "name", - "description", - "docsUrl", - "size", - "contextWindow", - "maxOutput", - "tokenPricing", - "releaseDate", - "lifecycle", - "knowledgeCutoff", - "inputModalities", - "outputModalities", - "capabilities" - ] - } - ], - "lastVerifiedAt": "2026-07-21", - "verifiedBy": "codex-agent", - "confidence": "high", - "websiteUrl": "https://mistral.ai", - "docsUrl": "https://docs.mistral.ai/models/model-cards/devstral-medium-1-0-25-07", - "vendor": "Mistral AI", - "size": null, - "contextWindow": 131072, - "maxOutput": null, - "tokenPricing": { - "status": "unavailable", - "reason": "historical-price-unverified", - "primaryOffer": null, - "offers": [] - }, - "releaseDate": "2025-07-10", - "lifecycle": "deprecated", - "knowledgeCutoff": null, - "inputModalities": ["text"], - "outputModalities": ["text"], - "capabilities": ["function-calling", "tool-choice", "structured-outputs"], - "benchmarks": { - "sweBench": null, - "terminalBench": null, - "mmmu": null, - "mmmuPro": null, - "webDevArena": null, - "sciCode": null, - "liveCodeBench": null - }, - "platformUrls": { - "huggingface": null, - "artificialAnalysis": null, - "openrouter": null - } -} diff --git a/manifests/models/devstral-small-1-0.json b/manifests/models/devstral-small-1-0.json deleted file mode 100644 index c8c74b57..00000000 --- a/manifests/models/devstral-small-1-0.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "$schema": "../$schemas/model.schema.json", - "id": "devstral-small-1-0", - "name": "Devstral Small 1.0", - "description": "Open 24B coding-agent model for exploring repositories, editing multiple files, and solving software engineering tasks.", - "translations": { - "zh-Hans": { - "description": "Devstral Small 1.0 是 Mistral 发布的独立模型版本,具备明确的编程或软件工程能力。" - }, - "de": { - "description": "Devstral Small 1.0 ist eine eigenständige Modellversion von Mistral mit klar ausgewiesenen Fähigkeiten für Programmierung oder Softwareentwicklung." - }, - "es": { - "description": "Devstral Small 1.0 es una versión de modelo independiente de Mistral con capacidades explícitas de programación o ingeniería de software." - }, - "fr": { - "description": "Devstral Small 1.0 est une version de modèle distincte de Mistral, dotée de capacités explicites en programmation ou en génie logiciel." - }, - "id": { - "description": "Devstral Small 1.0 adalah versi model mandiri dari Mistral dengan kemampuan pemrograman atau rekayasa perangkat lunak yang dinyatakan secara jelas." - }, - "ja": { - "description": "Devstral Small 1.0 は Mistral が公開した独立したモデル版で、プログラミングまたはソフトウェアエンジニアリング能力を明示しています。" - }, - "ko": { - "description": "Devstral Small 1.0은(는) Mistral가 공개한 독립 모델 버전으로, 프로그래밍 또는 소프트웨어 엔지니어링 기능을 명시적으로 제공합니다." - }, - "pt": { - "description": "Devstral Small 1.0 é uma versão de modelo independente da Mistral, com capacidades explícitas de programação ou engenharia de software." - }, - "ru": { - "description": "Devstral Small 1.0 — самостоятельная версия модели от Mistral с явно заявленными возможностями программирования или разработки ПО." - }, - "tr": { - "description": "Devstral Small 1.0, Mistral tarafından yayımlanan ve açıkça belirtilmiş programlama veya yazılım mühendisliği yeteneklerine sahip bağımsız bir model sürümüdür." - }, - "zh-Hant": { - "description": "Devstral Small 1.0 是 Mistral 發布的獨立模型版本,具備明確的程式設計或軟體工程能力。" - } - }, - "verified": true, - "sources": [ - { - "url": "https://docs.mistral.ai/models/model-cards/devstral-small-1-0-25-05", - "title": "Devstral Small 1.0 official documentation", - "fields": [ - "name", - "description", - "docsUrl", - "size", - "contextWindow", - "maxOutput", - "tokenPricing", - "releaseDate", - "lifecycle", - "knowledgeCutoff", - "inputModalities", - "outputModalities", - "capabilities" - ] - } - ], - "lastVerifiedAt": "2026-07-21", - "verifiedBy": "codex-agent", - "confidence": "high", - "websiteUrl": "https://mistral.ai", - "docsUrl": "https://docs.mistral.ai/models/model-cards/devstral-small-1-0-25-05", - "vendor": "Mistral AI", - "size": "24B", - "contextWindow": 131072, - "maxOutput": null, - "tokenPricing": { - "status": "unavailable", - "reason": "historical-price-unverified", - "primaryOffer": null, - "offers": [] - }, - "releaseDate": "2025-05-21", - "lifecycle": "deprecated", - "knowledgeCutoff": null, - "inputModalities": ["text"], - "outputModalities": ["text"], - "capabilities": ["function-calling", "tool-choice", "structured-outputs"], - "benchmarks": { - "sweBench": null, - "terminalBench": null, - "mmmu": null, - "mmmuPro": null, - "webDevArena": null, - "sciCode": null, - "liveCodeBench": null - }, - "platformUrls": { - "huggingface": null, - "artificialAnalysis": null, - "openrouter": null - } -} diff --git a/manifests/models/devstral-small-1-1.json b/manifests/models/devstral-small-1-1.json deleted file mode 100644 index 2c42378d..00000000 --- a/manifests/models/devstral-small-1-1.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "$schema": "../$schemas/model.schema.json", - "id": "devstral-small-1-1", - "name": "Devstral Small 1.1", - "description": "Updated open Devstral model for repository exploration, multi-file editing, and software engineering agents.", - "translations": { - "zh-Hans": { - "description": "Devstral Small 1.1 是 Mistral 发布的独立模型版本,具备明确的编程或软件工程能力。" - }, - "de": { - "description": "Devstral Small 1.1 ist eine eigenständige Modellversion von Mistral mit klar ausgewiesenen Fähigkeiten für Programmierung oder Softwareentwicklung." - }, - "es": { - "description": "Devstral Small 1.1 es una versión de modelo independiente de Mistral con capacidades explícitas de programación o ingeniería de software." - }, - "fr": { - "description": "Devstral Small 1.1 est une version de modèle distincte de Mistral, dotée de capacités explicites en programmation ou en génie logiciel." - }, - "id": { - "description": "Devstral Small 1.1 adalah versi model mandiri dari Mistral dengan kemampuan pemrograman atau rekayasa perangkat lunak yang dinyatakan secara jelas." - }, - "ja": { - "description": "Devstral Small 1.1 は Mistral が公開した独立したモデル版で、プログラミングまたはソフトウェアエンジニアリング能力を明示しています。" - }, - "ko": { - "description": "Devstral Small 1.1은(는) Mistral가 공개한 독립 모델 버전으로, 프로그래밍 또는 소프트웨어 엔지니어링 기능을 명시적으로 제공합니다." - }, - "pt": { - "description": "Devstral Small 1.1 é uma versão de modelo independente da Mistral, com capacidades explícitas de programação ou engenharia de software." - }, - "ru": { - "description": "Devstral Small 1.1 — самостоятельная версия модели от Mistral с явно заявленными возможностями программирования или разработки ПО." - }, - "tr": { - "description": "Devstral Small 1.1, Mistral tarafından yayımlanan ve açıkça belirtilmiş programlama veya yazılım mühendisliği yeteneklerine sahip bağımsız bir model sürümüdür." - }, - "zh-Hant": { - "description": "Devstral Small 1.1 是 Mistral 發布的獨立模型版本,具備明確的程式設計或軟體工程能力。" - } - }, - "verified": true, - "sources": [ - { - "url": "https://docs.mistral.ai/models/model-cards/devstral-small-1-1-25-07", - "title": "Devstral Small 1.1 official documentation", - "fields": [ - "name", - "description", - "docsUrl", - "size", - "contextWindow", - "maxOutput", - "tokenPricing", - "releaseDate", - "lifecycle", - "knowledgeCutoff", - "inputModalities", - "outputModalities", - "capabilities" - ] - } - ], - "lastVerifiedAt": "2026-07-21", - "verifiedBy": "codex-agent", - "confidence": "high", - "websiteUrl": "https://mistral.ai", - "docsUrl": "https://docs.mistral.ai/models/model-cards/devstral-small-1-1-25-07", - "vendor": "Mistral AI", - "size": "24B", - "contextWindow": 131072, - "maxOutput": null, - "tokenPricing": { - "status": "unavailable", - "reason": "historical-price-unverified", - "primaryOffer": null, - "offers": [] - }, - "releaseDate": "2025-07-10", - "lifecycle": "deprecated", - "knowledgeCutoff": null, - "inputModalities": ["text"], - "outputModalities": ["text"], - "capabilities": ["function-calling", "tool-choice", "structured-outputs"], - "benchmarks": { - "sweBench": null, - "terminalBench": null, - "mmmu": null, - "mmmuPro": null, - "webDevArena": null, - "sciCode": null, - "liveCodeBench": null - }, - "platformUrls": { - "huggingface": null, - "artificialAnalysis": null, - "openrouter": null - } -} diff --git a/manifests/models/gemini-2-0-flash-lite.json b/manifests/models/gemini-2-0-flash-lite.json deleted file mode 100644 index 71d7eefb..00000000 --- a/manifests/models/gemini-2-0-flash-lite.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "$schema": "../$schemas/model.schema.json", - "id": "gemini-2-0-flash-lite", - "name": "Gemini 2.0 Flash-Lite", - "description": "Cost-efficient Gemini 2.0 model for high-volume multimodal and code-adjacent automation tasks.", - "translations": { - "zh-Hans": { - "description": "Gemini 2.0 Flash-Lite 是 Google 发布的独立模型版本,具备明确的编程或软件工程能力。" - }, - "de": { - "description": "Gemini 2.0 Flash-Lite ist eine eigenständige Modellversion von Google mit klar ausgewiesenen Fähigkeiten für Programmierung oder Softwareentwicklung." - }, - "es": { - "description": "Gemini 2.0 Flash-Lite es una versión de modelo independiente de Google con capacidades explícitas de programación o ingeniería de software." - }, - "fr": { - "description": "Gemini 2.0 Flash-Lite est une version de modèle distincte de Google, dotée de capacités explicites en programmation ou en génie logiciel." - }, - "id": { - "description": "Gemini 2.0 Flash-Lite adalah versi model mandiri dari Google dengan kemampuan pemrograman atau rekayasa perangkat lunak yang dinyatakan secara jelas." - }, - "ja": { - "description": "Gemini 2.0 Flash-Lite は Google が公開した独立したモデル版で、プログラミングまたはソフトウェアエンジニアリング能力を明示しています。" - }, - "ko": { - "description": "Gemini 2.0 Flash-Lite은(는) Google가 공개한 독립 모델 버전으로, 프로그래밍 또는 소프트웨어 엔지니어링 기능을 명시적으로 제공합니다." - }, - "pt": { - "description": "Gemini 2.0 Flash-Lite é uma versão de modelo independente da Google, com capacidades explícitas de programação ou engenharia de software." - }, - "ru": { - "description": "Gemini 2.0 Flash-Lite — самостоятельная версия модели от Google с явно заявленными возможностями программирования или разработки ПО." - }, - "tr": { - "description": "Gemini 2.0 Flash-Lite, Google tarafından yayımlanan ve açıkça belirtilmiş programlama veya yazılım mühendisliği yeteneklerine sahip bağımsız bir model sürümüdür." - }, - "zh-Hant": { - "description": "Gemini 2.0 Flash-Lite 是 Google 發布的獨立模型版本,具備明確的程式設計或軟體工程能力。" - } - }, - "verified": true, - "sources": [ - { - "url": "https://ai.google.dev/gemini-api/docs/models/gemini-2.0-flash-lite", - "title": "Gemini 2.0 Flash-Lite official documentation", - "fields": [ - "name", - "description", - "docsUrl", - "size", - "contextWindow", - "maxOutput", - "tokenPricing", - "releaseDate", - "lifecycle", - "knowledgeCutoff", - "inputModalities", - "outputModalities", - "capabilities" - ] - } - ], - "lastVerifiedAt": "2026-07-21", - "verifiedBy": "codex-agent", - "confidence": "high", - "websiteUrl": "https://deepmind.google", - "docsUrl": "https://ai.google.dev/gemini-api/docs/models/gemini-2.0-flash-lite", - "vendor": "Google", - "size": null, - "contextWindow": 1048576, - "maxOutput": 8192, - "tokenPricing": { - "status": "available", - "primaryOffer": "global-standard", - "offers": [ - { - "id": "global-standard", - "currency": "USD", - "region": "global", - "serviceTier": "standard", - "effectiveFrom": null, - "effectiveTo": null, - "tiers": [ - { - "condition": null, - "rates": { - "input": 0.075, - "output": 0.3, - "cacheRead": 0.01875, - "cacheWrite": null - } - } - ] - } - ] - }, - "releaseDate": "2025-02-25", - "lifecycle": "deprecated", - "knowledgeCutoff": "2024-08", - "inputModalities": ["text", "image", "pdf", "audio", "video"], - "outputModalities": ["text"], - "capabilities": ["function-calling", "tool-choice", "structured-outputs"], - "benchmarks": { - "sweBench": null, - "terminalBench": null, - "mmmu": null, - "mmmuPro": null, - "webDevArena": null, - "sciCode": null, - "liveCodeBench": null - }, - "platformUrls": { - "huggingface": null, - "artificialAnalysis": null, - "openrouter": null - } -} diff --git a/manifests/models/gemini-3-1-flash-lite.json b/manifests/models/gemini-3-1-flash-lite.json deleted file mode 100644 index b15320f4..00000000 --- a/manifests/models/gemini-3-1-flash-lite.json +++ /dev/null @@ -1,121 +0,0 @@ -{ - "$schema": "../$schemas/model.schema.json", - "id": "gemini-3-1-flash-lite", - "name": "Gemini 3.1 Flash-Lite", - "description": "Google's stable low-latency, cost-efficient multimodal model for high-volume agentic tasks, translation, extraction, and lightweight processing.", - "translations": { - "de": { - "description": "Googles stabiles multimodales Modell mit geringer Latenz und hoher Kosteneffizienz für agentische Aufgaben mit hohem Volumen, Übersetzung, Extraktion und leichte Verarbeitung." - }, - "es": { - "description": "El modelo multimodal estable, de baja latencia y rentable de Google para tareas agénticas de gran volumen, traducción, extracción y procesamiento ligero." - }, - "fr": { - "description": "Le modèle multimodal stable, économique et à faible latence de Google pour les tâches agentiques volumineuses, la traduction, l’extraction et le traitement léger." - }, - "id": { - "description": "Model multimodal stabil Google berlatensi rendah dan hemat biaya untuk tugas agentik bervolume tinggi, penerjemahan, ekstraksi, dan pemrosesan ringan." - }, - "ja": { - "description": "大規模なエージェントタスク、翻訳、抽出、軽量処理向けに、低レイテンシーと高いコスト効率を備えたGoogleの安定版マルチモーダルモデル。" - }, - "ko": { - "description": "대규모 에이전트 작업, 번역, 추출, 경량 처리를 위한 Google의 안정적이고 지연 시간이 짧은 비용 효율적 멀티모달 모델입니다." - }, - "pt": { - "description": "O modelo multimodal estável, de baixa latência e econômico do Google para tarefas agênticas de alto volume, tradução, extração e processamento leve." - }, - "ru": { - "description": "Стабильная мультимодальная модель Google с низкой задержкой и выгодной стоимостью для массовых агентных задач, перевода, извлечения и лёгкой обработки." - }, - "tr": { - "description": "Google’ın yüksek hacimli aracı görevler, çeviri, çıkarım ve hafif işleme için kararlı, düşük gecikmeli ve uygun maliyetli çok modlu modeli." - }, - "zh-Hans": { - "description": "Google 稳定的低延迟、高性价比多模态模型,适用于大规模智能体任务、翻译、信息抽取和轻量处理。" - }, - "zh-Hant": { - "description": "Google 穩定的低延遲、高性價比多模態模型,適用於大規模智慧體任務、翻譯、資訊擷取和輕量處理。" - } - }, - "verified": true, - "sources": [ - { - "url": "https://ai.google.dev/gemini-api/docs/models/gemini-3.1-flash-lite", - "title": "Gemini 3.1 Flash-Lite model documentation", - "fields": [ - "docsUrl", - "contextWindow", - "maxOutput", - "knowledgeCutoff", - "inputModalities", - "outputModalities", - "capabilities" - ] - }, - { - "url": "https://ai.google.dev/gemini-api/docs/pricing", - "title": "Gemini Developer API pricing", - "fields": ["tokenPricing"] - }, - { - "url": "https://ai.google.dev/gemini-api/docs/changelog", - "title": "Gemini API release notes", - "fields": ["name", "description", "releaseDate", "lifecycle"] - } - ], - "lastVerifiedAt": "2026-07-22", - "verifiedBy": "codex-agent", - "confidence": "high", - "websiteUrl": "https://deepmind.google", - "docsUrl": "https://ai.google.dev/gemini-api/docs/models/gemini-3.1-flash-lite", - "vendor": "Google", - "size": "Unknown", - "contextWindow": 1048576, - "maxOutput": 65536, - "tokenPricing": { - "status": "available", - "primaryOffer": "global-standard", - "offers": [ - { - "id": "global-standard", - "currency": "USD", - "region": "global", - "serviceTier": "standard", - "effectiveFrom": null, - "effectiveTo": null, - "tiers": [ - { - "condition": null, - "rates": { - "input": 0.25, - "output": 1.5, - "cacheRead": 0.025, - "cacheWrite": null - } - } - ] - } - ] - }, - "releaseDate": "2026-05-07", - "lifecycle": "maintained", - "knowledgeCutoff": "2025-01", - "inputModalities": ["text", "image", "pdf", "audio", "video"], - "outputModalities": ["text"], - "capabilities": ["function-calling", "tool-choice", "structured-outputs", "reasoning"], - "benchmarks": { - "sweBench": null, - "terminalBench": null, - "mmmu": null, - "mmmuPro": null, - "webDevArena": null, - "sciCode": null, - "liveCodeBench": null - }, - "platformUrls": { - "huggingface": null, - "artificialAnalysis": null, - "openrouter": null - } -} diff --git a/manifests/models/gemini-3-1-pro-preview.json b/manifests/models/gemini-3-1-pro-preview.json index 7a7aa8ac..16edacd8 100644 --- a/manifests/models/gemini-3-1-pro-preview.json +++ b/manifests/models/gemini-3-1-pro-preview.json @@ -70,7 +70,7 @@ "websiteUrl": "https://deepmind.google", "docsUrl": "https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview", "vendor": "Google", - "size": "Unknown", + "size": null, "contextWindow": 1048576, "maxOutput": 65536, "tokenPricing": { diff --git a/manifests/models/gemini-3-5-flash.json b/manifests/models/gemini-3-5-flash.json index 9caea42a..10d8dad5 100644 --- a/manifests/models/gemini-3-5-flash.json +++ b/manifests/models/gemini-3-5-flash.json @@ -70,7 +70,7 @@ "websiteUrl": "https://deepmind.google", "docsUrl": "https://ai.google.dev/gemini-api/docs/models/gemini-3.5-flash", "vendor": "Google", - "size": "Unknown", + "size": null, "contextWindow": 1048576, "maxOutput": 65536, "tokenPricing": { diff --git a/manifests/models/gemini-3-flash.json b/manifests/models/gemini-3-flash.json index 49bbc991..a7623ce3 100644 --- a/manifests/models/gemini-3-flash.json +++ b/manifests/models/gemini-3-flash.json @@ -67,7 +67,7 @@ "websiteUrl": "https://deepmind.google", "docsUrl": "https://ai.google.dev/gemini-api/docs/gemini-3", "vendor": "Google", - "size": "Unknown", + "size": null, "contextWindow": 1048576, "maxOutput": 65536, "tokenPricing": { diff --git a/manifests/models/gemini-3-pro.json b/manifests/models/gemini-3-pro.json index 520c82ea..a6a29ac0 100644 --- a/manifests/models/gemini-3-pro.json +++ b/manifests/models/gemini-3-pro.json @@ -52,7 +52,7 @@ "websiteUrl": "https://deepmind.google", "docsUrl": "https://ai.google.dev/gemini-api/docs/models#gemini-3-pro", "vendor": "Google", - "size": "Unknown", + "size": null, "contextWindow": 1048576, "maxOutput": 65536, "tokenPricing": { diff --git a/manifests/models/glm-4-5-air.json b/manifests/models/glm-4-5-air.json new file mode 100644 index 00000000..ce59f0db --- /dev/null +++ b/manifests/models/glm-4-5-air.json @@ -0,0 +1,127 @@ +{ + "$schema": "../$schemas/model.schema.json", + "id": "glm-4-5-air", + "name": "GLM-4.5-Air", + "description": "A 106B MoE model with 12B active parameters, built for efficient agentic coding, reasoning, and tool use.", + "translations": { + "de": { + "description": "Ein 106B-MoE-Modell mit 12B aktiven Parametern für effizientes agentisches Programmieren, Schlussfolgern und den Einsatz von Werkzeugen." + }, + "es": { + "description": "Un modelo MoE de 106B con 12B parámetros activos, creado para programación agéntica, razonamiento y uso de herramientas eficientes." + }, + "fr": { + "description": "Un modèle MoE de 106B avec 12B paramètres actifs, conçu pour le codage agentique, le raisonnement et l’usage efficace d’outils." + }, + "id": { + "description": "Model MoE 106B dengan 12B parameter aktif untuk coding agentik, penalaran, dan penggunaan alat yang efisien." + }, + "ja": { + "description": "効率的なエージェント型コーディング、推論、ツール利用向けに設計された、総106B・活性12BパラメータのMoEモデルです。" + }, + "ko": { + "description": "효율적인 에이전트 코딩, 추론 및 도구 사용을 위해 설계된 총 106B, 활성 12B 파라미터의 MoE 모델입니다." + }, + "pt": { + "description": "Um modelo MoE de 106B com 12B parâmetros ativos, criado para programação agêntica, raciocínio e uso eficiente de ferramentas." + }, + "ru": { + "description": "MoE-модель на 106B параметров с 12B активных параметров для эффективного агентного программирования, рассуждений и работы с инструментами." + }, + "tr": { + "description": "Verimli aracı kodlama, akıl yürütme ve araç kullanımı için geliştirilmiş, 12B etkin parametreli 106B MoE modeli." + }, + "zh-Hans": { + "description": "一款总参数 106B、激活参数 12B 的 MoE 模型,面向高效的智能体编码、推理和工具使用。" + }, + "zh-Hant": { + "description": "一款總參數 106B、啟用參數 12B 的 MoE 模型,面向高效的智慧體編碼、推理和工具使用。" + } + }, + "verified": true, + "sources": [ + { + "url": "https://docs.z.ai/guides/llm/glm-4.5", + "title": "GLM-4.5 series documentation", + "fields": [ + "name", + "description", + "docsUrl", + "contextWindow", + "maxOutput", + "inputModalities", + "outputModalities", + "capabilities" + ] + }, + { + "url": "https://docs.z.ai/release-notes/new-released", + "title": "Z.ai model release notes", + "fields": ["releaseDate", "lifecycle"] + }, + { + "url": "https://docs.z.ai/guides/overview/pricing", + "title": "Z.ai API pricing", + "fields": ["tokenPricing"] + }, + { + "url": "https://huggingface.co/zai-org/GLM-4.5-Air", + "title": "Official GLM-4.5-Air model card", + "fields": ["size", "platformUrls"] + } + ], + "lastVerifiedAt": "2026-07-26", + "verifiedBy": "codex-agent", + "confidence": "high", + "websiteUrl": "https://z.ai", + "docsUrl": "https://docs.z.ai/guides/llm/glm-4.5", + "vendor": "Z.ai", + "size": "106B (12B active)", + "contextWindow": 131072, + "maxOutput": 98304, + "tokenPricing": { + "status": "available", + "primaryOffer": "global-standard", + "offers": [ + { + "id": "global-standard", + "currency": "USD", + "region": "global", + "serviceTier": "standard", + "effectiveFrom": null, + "effectiveTo": null, + "tiers": [ + { + "condition": null, + "rates": { + "input": 0.2, + "output": 1.1, + "cacheRead": 0.03, + "cacheWrite": null + } + } + ] + } + ] + }, + "releaseDate": "2025-07-28", + "lifecycle": "maintained", + "knowledgeCutoff": null, + "inputModalities": ["text"], + "outputModalities": ["text"], + "capabilities": ["function-calling", "tool-choice", "structured-outputs", "reasoning"], + "benchmarks": { + "sweBench": null, + "terminalBench": null, + "mmmu": null, + "mmmuPro": null, + "webDevArena": null, + "sciCode": null, + "liveCodeBench": null + }, + "platformUrls": { + "huggingface": "https://huggingface.co/zai-org/GLM-4.5-Air", + "artificialAnalysis": "https://artificialanalysis.ai/models/glm-4-5-air", + "openrouter": null + } +} diff --git a/manifests/models/glm-4-5v.json b/manifests/models/glm-4-5v.json new file mode 100644 index 00000000..d17b0a0d --- /dev/null +++ b/manifests/models/glm-4-5v.json @@ -0,0 +1,127 @@ +{ + "$schema": "../$schemas/model.schema.json", + "id": "glm-4-5v", + "name": "GLM-4.5V", + "description": "A 106B visual reasoning MoE model with 12B active parameters for image, video, document, GUI, and web coding tasks.", + "translations": { + "de": { + "description": "Ein visuelles 106B-MoE-Modell mit 12B aktiven Parametern für Bild-, Video-, Dokument-, GUI- und Webprogrammieraufgaben." + }, + "es": { + "description": "Un modelo MoE de razonamiento visual de 106B con 12B parámetros activos para tareas de imagen, vídeo, documentos, GUI y programación web." + }, + "fr": { + "description": "Un modèle MoE de raisonnement visuel de 106B avec 12B paramètres actifs pour l’image, la vidéo, les documents, les GUI et le codage web." + }, + "id": { + "description": "Model MoE penalaran visual 106B dengan 12B parameter aktif untuk tugas gambar, video, dokumen, GUI, dan coding web." + }, + "ja": { + "description": "画像、動画、文書、GUI、Webコーディング向けの、総106B・活性12Bパラメータの視覚推論MoEモデルです。" + }, + "ko": { + "description": "이미지, 동영상, 문서, GUI 및 웹 코딩 작업을 위한 총 106B, 활성 12B 파라미터의 시각 추론 MoE 모델입니다." + }, + "pt": { + "description": "Um modelo MoE de raciocínio visual de 106B com 12B parâmetros ativos para imagem, vídeo, documentos, GUI e programação web." + }, + "ru": { + "description": "Визуальная MoE-модель на 106B параметров с 12B активных параметров для изображений, видео, документов, GUI и веб-разработки." + }, + "tr": { + "description": "Görüntü, video, belge, GUI ve web kodlama görevleri için 12B etkin parametreli 106B görsel akıl yürütme MoE modeli." + }, + "zh-Hans": { + "description": "一款总参数 106B、激活参数 12B 的视觉推理 MoE 模型,面向图像、视频、文档、GUI 和网页编码任务。" + }, + "zh-Hant": { + "description": "一款總參數 106B、啟用參數 12B 的視覺推理 MoE 模型,面向圖像、影片、文件、GUI 和網頁編碼任務。" + } + }, + "verified": true, + "sources": [ + { + "url": "https://docs.z.ai/guides/vlm/glm-4.5v", + "title": "GLM-4.5V model documentation", + "fields": [ + "name", + "description", + "docsUrl", + "size", + "maxOutput", + "inputModalities", + "outputModalities", + "capabilities" + ] + }, + { + "url": "https://docs.z.ai/release-notes/new-released", + "title": "Z.ai model release notes", + "fields": ["releaseDate", "lifecycle"] + }, + { + "url": "https://docs.z.ai/guides/overview/pricing", + "title": "Z.ai API pricing", + "fields": ["tokenPricing"] + }, + { + "url": "https://huggingface.co/zai-org/GLM-4.5V", + "title": "Official GLM-4.5V model card", + "fields": ["contextWindow", "platformUrls"] + } + ], + "lastVerifiedAt": "2026-07-26", + "verifiedBy": "codex-agent", + "confidence": "high", + "websiteUrl": "https://z.ai", + "docsUrl": "https://docs.z.ai/guides/vlm/glm-4.5v", + "vendor": "Z.ai", + "size": "106B (12B active)", + "contextWindow": 65536, + "maxOutput": 16384, + "tokenPricing": { + "status": "available", + "primaryOffer": "global-standard", + "offers": [ + { + "id": "global-standard", + "currency": "USD", + "region": "global", + "serviceTier": "standard", + "effectiveFrom": null, + "effectiveTo": null, + "tiers": [ + { + "condition": null, + "rates": { + "input": 0.6, + "output": 1.8, + "cacheRead": 0.11, + "cacheWrite": null + } + } + ] + } + ] + }, + "releaseDate": "2025-08-11", + "lifecycle": "maintained", + "knowledgeCutoff": null, + "inputModalities": ["text", "image", "video"], + "outputModalities": ["text"], + "capabilities": ["function-calling", "reasoning"], + "benchmarks": { + "sweBench": null, + "terminalBench": null, + "mmmu": null, + "mmmuPro": null, + "webDevArena": null, + "sciCode": null, + "liveCodeBench": null + }, + "platformUrls": { + "huggingface": "https://huggingface.co/zai-org/GLM-4.5V", + "artificialAnalysis": "https://artificialanalysis.ai/models/glm-4-5v", + "openrouter": null + } +} diff --git a/manifests/models/glm-4-7-flash.json b/manifests/models/glm-4-7-flash.json new file mode 100644 index 00000000..45b15fbc --- /dev/null +++ b/manifests/models/glm-4-7-flash.json @@ -0,0 +1,127 @@ +{ + "$schema": "../$schemas/model.schema.json", + "id": "glm-4-7-flash", + "name": "GLM-4.7-Flash", + "description": "A lightweight 30B-A3B MoE model for fast coding, reasoning, and agentic tasks with a 200K context window.", + "translations": { + "de": { + "description": "Ein leichtes 30B-A3B-MoE-Modell für schnelles Programmieren, Schlussfolgern und agentische Aufgaben mit 200K Kontext." + }, + "es": { + "description": "Un modelo MoE ligero 30B-A3B para programación, razonamiento y tareas agénticas rápidas con una ventana de contexto de 200K." + }, + "fr": { + "description": "Un modèle MoE léger 30B-A3B pour le codage, le raisonnement et les tâches agentiques rapides avec un contexte de 200K." + }, + "id": { + "description": "Model MoE ringan 30B-A3B untuk coding, penalaran, dan tugas agentik cepat dengan jendela konteks 200K." + }, + "ja": { + "description": "200Kコンテキストを備え、高速なコーディング、推論、エージェントタスクに対応する軽量30B-A3B MoEモデルです。" + }, + "ko": { + "description": "200K 컨텍스트 창에서 빠른 코딩, 추론 및 에이전트 작업을 지원하는 경량 30B-A3B MoE 모델입니다." + }, + "pt": { + "description": "Um modelo MoE leve 30B-A3B para programação, raciocínio e tarefas agênticas rápidas com janela de contexto de 200K." + }, + "ru": { + "description": "Лёгкая MoE-модель 30B-A3B для быстрого программирования, рассуждений и агентных задач с контекстом 200K." + }, + "tr": { + "description": "200K bağlam penceresiyle hızlı kodlama, akıl yürütme ve aracı görevler için hafif 30B-A3B MoE modeli." + }, + "zh-Hans": { + "description": "一款轻量级 30B-A3B MoE 模型,具备 200K 上下文窗口,面向高速编码、推理和智能体任务。" + }, + "zh-Hant": { + "description": "一款輕量級 30B-A3B MoE 模型,具備 200K 上下文視窗,面向高速編碼、推理和智慧體任務。" + } + }, + "verified": true, + "sources": [ + { + "url": "https://docs.z.ai/guides/llm/glm-4.7", + "title": "GLM-4.7 series documentation", + "fields": [ + "name", + "description", + "docsUrl", + "contextWindow", + "maxOutput", + "inputModalities", + "outputModalities", + "capabilities" + ] + }, + { + "url": "https://docs.z.ai/release-notes/new-released", + "title": "Z.ai model release notes", + "fields": ["releaseDate", "lifecycle"] + }, + { + "url": "https://docs.z.ai/guides/overview/pricing", + "title": "Z.ai API pricing", + "fields": ["tokenPricing"] + }, + { + "url": "https://huggingface.co/zai-org/GLM-4.7-Flash", + "title": "Official GLM-4.7-Flash model card", + "fields": ["size", "platformUrls"] + } + ], + "lastVerifiedAt": "2026-07-26", + "verifiedBy": "codex-agent", + "confidence": "high", + "websiteUrl": "https://z.ai", + "docsUrl": "https://docs.z.ai/guides/llm/glm-4.7", + "vendor": "Z.ai", + "size": "31.2B (3B active)", + "contextWindow": 204800, + "maxOutput": 131072, + "tokenPricing": { + "status": "available", + "primaryOffer": "global-standard", + "offers": [ + { + "id": "global-standard", + "currency": "USD", + "region": "global", + "serviceTier": "standard", + "effectiveFrom": null, + "effectiveTo": null, + "tiers": [ + { + "condition": null, + "rates": { + "input": 0, + "output": 0, + "cacheRead": 0, + "cacheWrite": null + } + } + ] + } + ] + }, + "releaseDate": "2026-01-19", + "lifecycle": "maintained", + "knowledgeCutoff": null, + "inputModalities": ["text"], + "outputModalities": ["text"], + "capabilities": ["function-calling", "tool-choice", "structured-outputs", "reasoning"], + "benchmarks": { + "sweBench": null, + "terminalBench": null, + "mmmu": null, + "mmmuPro": null, + "webDevArena": null, + "sciCode": null, + "liveCodeBench": null + }, + "platformUrls": { + "huggingface": "https://huggingface.co/zai-org/GLM-4.7-Flash", + "artificialAnalysis": "https://artificialanalysis.ai/models/glm-4-7-flash", + "openrouter": null + } +} diff --git a/manifests/models/glm-5-turbo.json b/manifests/models/glm-5-turbo.json new file mode 100644 index 00000000..f6d8045b --- /dev/null +++ b/manifests/models/glm-5-turbo.json @@ -0,0 +1,122 @@ +{ + "$schema": "../$schemas/model.schema.json", + "id": "glm-5-turbo", + "name": "GLM-5-Turbo", + "description": "A proprietary model optimized for high-throughput, long-chain agent workflows, tool use, and complex instruction execution.", + "translations": { + "de": { + "description": "Ein proprietäres Modell für durchsatzstarke, lange Agentenabläufe, Werkzeugnutzung und die Ausführung komplexer Anweisungen." + }, + "es": { + "description": "Un modelo propietario optimizado para flujos agénticos largos y de alto rendimiento, uso de herramientas y ejecución de instrucciones complejas." + }, + "fr": { + "description": "Un modèle propriétaire optimisé pour les workflows agentiques longs à haut débit, l’usage d’outils et l’exécution d’instructions complexes." + }, + "id": { + "description": "Model proprietari yang dioptimalkan untuk alur agen panjang berthroughput tinggi, penggunaan alat, dan eksekusi instruksi kompleks." + }, + "ja": { + "description": "高スループットの長期エージェントワークフロー、ツール利用、複雑な指示の実行向けに最適化されたプロプライエタリモデルです。" + }, + "ko": { + "description": "고처리량 장기 에이전트 워크플로, 도구 사용 및 복잡한 지시 실행에 최적화된 독점 모델입니다." + }, + "pt": { + "description": "Um modelo proprietário otimizado para fluxos agênticos longos e de alto rendimento, uso de ferramentas e execução de instruções complexas." + }, + "ru": { + "description": "Закрытая модель для высокопроизводительных длинных агентных процессов, работы с инструментами и выполнения сложных инструкций." + }, + "tr": { + "description": "Yüksek hacimli, uzun zincirli aracı iş akışları, araç kullanımı ve karmaşık talimat yürütme için optimize edilmiş tescilli model." + }, + "zh-Hans": { + "description": "一款面向高吞吐、长链路智能体工作流、工具使用和复杂指令执行优化的闭源模型。" + }, + "zh-Hant": { + "description": "一款面向高吞吐、長鏈路智慧體工作流程、工具使用和複雜指令執行最佳化的閉源模型。" + } + }, + "verified": true, + "sources": [ + { + "url": "https://docs.z.ai/guides/llm/glm-5-turbo", + "title": "GLM-5-Turbo model documentation", + "fields": [ + "name", + "description", + "docsUrl", + "contextWindow", + "maxOutput", + "inputModalities", + "outputModalities", + "capabilities" + ] + }, + { + "url": "https://docs.z.ai/release-notes/new-released", + "title": "Z.ai model release notes", + "fields": ["releaseDate", "lifecycle"] + }, + { + "url": "https://docs.z.ai/guides/overview/pricing", + "title": "Z.ai API pricing", + "fields": ["tokenPricing"] + } + ], + "lastVerifiedAt": "2026-07-26", + "verifiedBy": "codex-agent", + "confidence": "high", + "websiteUrl": "https://z.ai", + "docsUrl": "https://docs.z.ai/guides/llm/glm-5-turbo", + "vendor": "Z.ai", + "size": null, + "contextWindow": 204800, + "maxOutput": 131072, + "tokenPricing": { + "status": "available", + "primaryOffer": "global-standard", + "offers": [ + { + "id": "global-standard", + "currency": "USD", + "region": "global", + "serviceTier": "standard", + "effectiveFrom": null, + "effectiveTo": null, + "tiers": [ + { + "condition": null, + "rates": { + "input": 1.2, + "output": 4, + "cacheRead": 0.24, + "cacheWrite": null + } + } + ] + } + ] + }, + "releaseDate": "2026-03-15", + "lifecycle": "maintained", + "knowledgeCutoff": null, + "inputModalities": ["text"], + "outputModalities": ["text"], + "capabilities": ["function-calling", "tool-choice", "structured-outputs", "reasoning"], + "benchmarks": { + "sweBench": null, + "terminalBench": null, + "mmmu": null, + "mmmuPro": null, + "webDevArena": null, + "sciCode": null, + "liveCodeBench": null + }, + "platformUrls": { + "huggingface": null, + "artificialAnalysis": "https://artificialanalysis.ai/models/glm-5-turbo", + "openrouter": null + } +} diff --git a/manifests/models/glm-5v-turbo.json b/manifests/models/glm-5v-turbo.json new file mode 100644 index 00000000..17c6432b --- /dev/null +++ b/manifests/models/glm-5v-turbo.json @@ -0,0 +1,122 @@ +{ + "$schema": "../$schemas/model.schema.json", + "id": "glm-5v-turbo", + "name": "GLM-5V-Turbo", + "description": "Z.ai's proprietary multimodal coding model for visual coding, GUI agents, long-horizon planning, and complex action execution.", + "translations": { + "de": { + "description": "Z.ais proprietäres multimodales Programmiermodell für visuelles Coding, GUI-Agenten, langfristige Planung und komplexe Aktionsausführung." + }, + "es": { + "description": "El modelo propietario multimodal de Z.ai para programación visual, agentes GUI, planificación prolongada y ejecución de acciones complejas." + }, + "fr": { + "description": "Le modèle propriétaire multimodal de Z.ai pour le codage visuel, les agents GUI, la planification longue et l’exécution d’actions complexes." + }, + "id": { + "description": "Model coding multimodal proprietari Z.ai untuk coding visual, agen GUI, perencanaan jangka panjang, dan eksekusi tindakan kompleks." + }, + "ja": { + "description": "視覚コーディング、GUIエージェント、長期計画、複雑なアクション実行向けのZ.ai製プロプライエタリマルチモーダルモデルです。" + }, + "ko": { + "description": "시각 코딩, GUI 에이전트, 장기 계획 및 복잡한 작업 실행을 위한 Z.ai의 독점 멀티모달 코딩 모델입니다." + }, + "pt": { + "description": "O modelo proprietário multimodal da Z.ai para programação visual, agentes GUI, planejamento prolongado e execução de ações complexas." + }, + "ru": { + "description": "Закрытая мультимодальная модель Z.ai для визуального программирования, GUI-агентов, долгосрочного планирования и сложных действий." + }, + "tr": { + "description": "Görsel kodlama, GUI aracıları, uzun vadeli planlama ve karmaşık eylem yürütme için Z.ai'ın tescilli çok modlu kodlama modeli." + }, + "zh-Hans": { + "description": "Z.ai 面向视觉编码、GUI 智能体、长周期规划和复杂动作执行的闭源多模态编码模型。" + }, + "zh-Hant": { + "description": "Z.ai 面向視覺編碼、GUI 智慧體、長週期規劃和複雜動作執行的閉源多模態編碼模型。" + } + }, + "verified": true, + "sources": [ + { + "url": "https://docs.z.ai/guides/vlm/glm-5v-turbo", + "title": "GLM-5V-Turbo model documentation", + "fields": [ + "name", + "description", + "docsUrl", + "contextWindow", + "maxOutput", + "inputModalities", + "outputModalities", + "capabilities" + ] + }, + { + "url": "https://docs.z.ai/release-notes/new-released", + "title": "Z.ai model release notes", + "fields": ["releaseDate", "lifecycle"] + }, + { + "url": "https://docs.z.ai/guides/overview/pricing", + "title": "Z.ai API pricing", + "fields": ["tokenPricing"] + } + ], + "lastVerifiedAt": "2026-07-26", + "verifiedBy": "codex-agent", + "confidence": "high", + "websiteUrl": "https://z.ai", + "docsUrl": "https://docs.z.ai/guides/vlm/glm-5v-turbo", + "vendor": "Z.ai", + "size": null, + "contextWindow": 204800, + "maxOutput": 131072, + "tokenPricing": { + "status": "available", + "primaryOffer": "global-standard", + "offers": [ + { + "id": "global-standard", + "currency": "USD", + "region": "global", + "serviceTier": "standard", + "effectiveFrom": null, + "effectiveTo": null, + "tiers": [ + { + "condition": null, + "rates": { + "input": 1.2, + "output": 4, + "cacheRead": 0.24, + "cacheWrite": null + } + } + ] + } + ] + }, + "releaseDate": "2026-04-01", + "lifecycle": "latest", + "knowledgeCutoff": null, + "inputModalities": ["text", "image", "video"], + "outputModalities": ["text"], + "capabilities": ["function-calling", "reasoning"], + "benchmarks": { + "sweBench": null, + "terminalBench": null, + "mmmu": null, + "mmmuPro": null, + "webDevArena": null, + "sciCode": null, + "liveCodeBench": null + }, + "platformUrls": { + "huggingface": null, + "artificialAnalysis": "https://artificialanalysis.ai/models/glm-5v-turbo", + "openrouter": null + } +} diff --git a/manifests/models/gpt-4-1.json b/manifests/models/gpt-4-1.json index 48031e23..8d77319f 100644 --- a/manifests/models/gpt-4-1.json +++ b/manifests/models/gpt-4-1.json @@ -42,7 +42,7 @@ "websiteUrl": "https://openai.com", "docsUrl": "https://platform.openai.com/docs/models/gpt-4.1", "vendor": "OpenAI", - "size": "Unknown", + "size": null, "contextWindow": 1047576, "maxOutput": 32768, "tokenPricing": { diff --git a/manifests/models/gpt-4o.json b/manifests/models/gpt-4o.json index ccf11c35..fe383013 100644 --- a/manifests/models/gpt-4o.json +++ b/manifests/models/gpt-4o.json @@ -42,7 +42,7 @@ "websiteUrl": "https://openai.com", "docsUrl": "https://platform.openai.com/docs/models/gpt-4o-latest", "vendor": "OpenAI", - "size": "Unknown", + "size": null, "contextWindow": 128000, "maxOutput": 16384, "tokenPricing": { diff --git a/manifests/models/gpt-5-1-codex-max.json b/manifests/models/gpt-5-1-codex-max.json deleted file mode 100644 index 4e03c109..00000000 --- a/manifests/models/gpt-5-1-codex-max.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "$schema": "../$schemas/model.schema.json", - "id": "gpt-5-1-codex-max", - "name": "GPT-5.1-Codex-Max", - "description": "Long-horizon Codex model optimized for project-scale refactoring, persistent execution, and large software tasks.", - "translations": { - "zh-Hans": { - "description": "GPT-5.1-Codex-Max 是 OpenAI 发布的独立模型版本,具备明确的编程或软件工程能力。" - }, - "de": { - "description": "GPT-5.1-Codex-Max ist eine eigenständige Modellversion von OpenAI mit klar ausgewiesenen Fähigkeiten für Programmierung oder Softwareentwicklung." - }, - "es": { - "description": "GPT-5.1-Codex-Max es una versión de modelo independiente de OpenAI con capacidades explícitas de programación o ingeniería de software." - }, - "fr": { - "description": "GPT-5.1-Codex-Max est une version de modèle distincte de OpenAI, dotée de capacités explicites en programmation ou en génie logiciel." - }, - "id": { - "description": "GPT-5.1-Codex-Max adalah versi model mandiri dari OpenAI dengan kemampuan pemrograman atau rekayasa perangkat lunak yang dinyatakan secara jelas." - }, - "ja": { - "description": "GPT-5.1-Codex-Max は OpenAI が公開した独立したモデル版で、プログラミングまたはソフトウェアエンジニアリング能力を明示しています。" - }, - "ko": { - "description": "GPT-5.1-Codex-Max은(는) OpenAI가 공개한 독립 모델 버전으로, 프로그래밍 또는 소프트웨어 엔지니어링 기능을 명시적으로 제공합니다." - }, - "pt": { - "description": "GPT-5.1-Codex-Max é uma versão de modelo independente da OpenAI, com capacidades explícitas de programação ou engenharia de software." - }, - "ru": { - "description": "GPT-5.1-Codex-Max — самостоятельная версия модели от OpenAI с явно заявленными возможностями программирования или разработки ПО." - }, - "tr": { - "description": "GPT-5.1-Codex-Max, OpenAI tarafından yayımlanan ve açıkça belirtilmiş programlama veya yazılım mühendisliği yeteneklerine sahip bağımsız bir model sürümüdür." - }, - "zh-Hant": { - "description": "GPT-5.1-Codex-Max 是 OpenAI 發布的獨立模型版本,具備明確的程式設計或軟體工程能力。" - } - }, - "verified": true, - "sources": [ - { - "url": "https://developers.openai.com/api/docs/models/gpt-5.1-codex-max", - "title": "GPT-5.1-Codex-Max official documentation", - "fields": [ - "name", - "description", - "docsUrl", - "size", - "contextWindow", - "maxOutput", - "tokenPricing", - "releaseDate", - "lifecycle", - "knowledgeCutoff", - "inputModalities", - "outputModalities", - "capabilities" - ] - } - ], - "lastVerifiedAt": "2026-07-21", - "verifiedBy": "codex-agent", - "confidence": "high", - "websiteUrl": "https://openai.com", - "docsUrl": "https://developers.openai.com/api/docs/models/gpt-5.1-codex-max", - "vendor": "OpenAI", - "size": null, - "contextWindow": 400000, - "maxOutput": 128000, - "tokenPricing": { - "status": "available", - "primaryOffer": "global-standard", - "offers": [ - { - "id": "global-standard", - "currency": "USD", - "region": "global", - "serviceTier": "standard", - "effectiveFrom": null, - "effectiveTo": null, - "tiers": [ - { - "condition": null, - "rates": { - "input": 1.25, - "output": 10, - "cacheRead": 0.125, - "cacheWrite": null - } - } - ] - } - ] - }, - "releaseDate": "2025-11-19", - "lifecycle": "deprecated", - "knowledgeCutoff": "2024-09-30", - "inputModalities": ["text", "image"], - "outputModalities": ["text"], - "capabilities": ["function-calling", "tool-choice", "structured-outputs", "reasoning"], - "benchmarks": { - "sweBench": null, - "terminalBench": null, - "mmmu": null, - "mmmuPro": null, - "webDevArena": null, - "sciCode": null, - "liveCodeBench": null - }, - "platformUrls": { - "huggingface": null, - "artificialAnalysis": null, - "openrouter": null - } -} diff --git a/manifests/models/gpt-5-1-codex.json b/manifests/models/gpt-5-1-codex.json index 2c3de451..ce154020 100644 --- a/manifests/models/gpt-5-1-codex.json +++ b/manifests/models/gpt-5-1-codex.json @@ -42,7 +42,7 @@ "websiteUrl": "https://openai.com", "docsUrl": "https://platform.openai.com/docs/models/gpt-5.1-codex", "vendor": "OpenAI", - "size": "Unknown", + "size": null, "contextWindow": 400000, "maxOutput": 128000, "tokenPricing": { diff --git a/manifests/models/gpt-5-1.json b/manifests/models/gpt-5-1.json index d69cb0c6..8ddb043b 100644 --- a/manifests/models/gpt-5-1.json +++ b/manifests/models/gpt-5-1.json @@ -42,7 +42,7 @@ "websiteUrl": "https://openai.com", "docsUrl": "https://platform.openai.com/docs/models/gpt-5.1", "vendor": "OpenAI", - "size": "Unknown", + "size": null, "contextWindow": 400000, "maxOutput": 128000, "tokenPricing": { diff --git a/manifests/models/gpt-5-2-pro.json b/manifests/models/gpt-5-2-pro.json deleted file mode 100644 index 5e97ceb0..00000000 --- a/manifests/models/gpt-5-2-pro.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "$schema": "../$schemas/model.schema.json", - "id": "gpt-5-2-pro", - "name": "GPT-5.2 Pro", - "description": "High-compute GPT-5.2 variant for complex professional reasoning and software engineering work.", - "translations": { - "zh-Hans": { - "description": "GPT-5.2 Pro 是 OpenAI 发布的独立模型版本,具备明确的编程或软件工程能力。" - }, - "de": { - "description": "GPT-5.2 Pro ist eine eigenständige Modellversion von OpenAI mit klar ausgewiesenen Fähigkeiten für Programmierung oder Softwareentwicklung." - }, - "es": { - "description": "GPT-5.2 Pro es una versión de modelo independiente de OpenAI con capacidades explícitas de programación o ingeniería de software." - }, - "fr": { - "description": "GPT-5.2 Pro est une version de modèle distincte de OpenAI, dotée de capacités explicites en programmation ou en génie logiciel." - }, - "id": { - "description": "GPT-5.2 Pro adalah versi model mandiri dari OpenAI dengan kemampuan pemrograman atau rekayasa perangkat lunak yang dinyatakan secara jelas." - }, - "ja": { - "description": "GPT-5.2 Pro は OpenAI が公開した独立したモデル版で、プログラミングまたはソフトウェアエンジニアリング能力を明示しています。" - }, - "ko": { - "description": "GPT-5.2 Pro은(는) OpenAI가 공개한 독립 모델 버전으로, 프로그래밍 또는 소프트웨어 엔지니어링 기능을 명시적으로 제공합니다." - }, - "pt": { - "description": "GPT-5.2 Pro é uma versão de modelo independente da OpenAI, com capacidades explícitas de programação ou engenharia de software." - }, - "ru": { - "description": "GPT-5.2 Pro — самостоятельная версия модели от OpenAI с явно заявленными возможностями программирования или разработки ПО." - }, - "tr": { - "description": "GPT-5.2 Pro, OpenAI tarafından yayımlanan ve açıkça belirtilmiş programlama veya yazılım mühendisliği yeteneklerine sahip bağımsız bir model sürümüdür." - }, - "zh-Hant": { - "description": "GPT-5.2 Pro 是 OpenAI 發布的獨立模型版本,具備明確的程式設計或軟體工程能力。" - } - }, - "verified": true, - "sources": [ - { - "url": "https://developers.openai.com/api/docs/models/gpt-5.2-pro", - "title": "GPT-5.2 Pro official documentation", - "fields": [ - "name", - "description", - "docsUrl", - "size", - "contextWindow", - "maxOutput", - "tokenPricing", - "releaseDate", - "lifecycle", - "knowledgeCutoff", - "inputModalities", - "outputModalities", - "capabilities" - ] - } - ], - "lastVerifiedAt": "2026-07-21", - "verifiedBy": "codex-agent", - "confidence": "high", - "websiteUrl": "https://openai.com", - "docsUrl": "https://developers.openai.com/api/docs/models/gpt-5.2-pro", - "vendor": "OpenAI", - "size": null, - "contextWindow": 400000, - "maxOutput": 128000, - "tokenPricing": { - "status": "available", - "primaryOffer": "global-standard", - "offers": [ - { - "id": "global-standard", - "currency": "USD", - "region": "global", - "serviceTier": "standard", - "effectiveFrom": null, - "effectiveTo": null, - "tiers": [ - { - "condition": null, - "rates": { - "input": 21, - "output": 168, - "cacheRead": null, - "cacheWrite": null - } - } - ] - } - ] - }, - "releaseDate": "2025-12-11", - "lifecycle": "maintained", - "knowledgeCutoff": "2025-08-31", - "inputModalities": ["text", "image"], - "outputModalities": ["text"], - "capabilities": ["function-calling", "tool-choice", "reasoning"], - "benchmarks": { - "sweBench": null, - "terminalBench": null, - "mmmu": null, - "mmmuPro": null, - "webDevArena": null, - "sciCode": null, - "liveCodeBench": null - }, - "platformUrls": { - "huggingface": null, - "artificialAnalysis": null, - "openrouter": null - } -} diff --git a/manifests/models/gpt-5-2.json b/manifests/models/gpt-5-2.json index 678c1483..cffcadb3 100644 --- a/manifests/models/gpt-5-2.json +++ b/manifests/models/gpt-5-2.json @@ -67,7 +67,7 @@ "websiteUrl": "https://openai.com", "docsUrl": "https://developers.openai.com/api/docs/models/gpt-5.2", "vendor": "OpenAI", - "size": "Unknown", + "size": null, "contextWindow": 400000, "maxOutput": 128000, "tokenPricing": { diff --git a/manifests/models/gpt-5-4-pro.json b/manifests/models/gpt-5-4-pro.json deleted file mode 100644 index 3df347d8..00000000 --- a/manifests/models/gpt-5-4-pro.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "$schema": "../$schemas/model.schema.json", - "id": "gpt-5-4-pro", - "name": "GPT-5.4 Pro", - "description": "OpenAI's higher-compute GPT-5.4 variant for difficult coding, reasoning, agentic, and professional tasks requiring more precise answers.", - "translations": { - "de": { - "description": "OpenAIs rechenintensivere GPT-5.4-Variante für schwierige Coding-, Reasoning-, Agenten- und professionelle Aufgaben mit präziseren Antworten." - }, - "es": { - "description": "La variante GPT-5.4 de OpenAI con más cómputo para tareas difíciles de código, razonamiento, agentes y trabajo profesional." - }, - "fr": { - "description": "La variante GPT-5.4 d’OpenAI à calcul renforcé pour le codage, le raisonnement, les agents et les tâches professionnelles difficiles." - }, - "id": { - "description": "Varian GPT-5.4 OpenAI dengan komputasi lebih tinggi untuk tugas coding, penalaran, agen, dan profesional yang sulit." - }, - "ja": { - "description": "難しいコーディング、推論、エージェント、専門業務でより正確な回答を生成するOpenAIの高計算量GPT-5.4モデル。" - }, - "ko": { - "description": "어려운 코딩, 추론, 에이전트 및 전문 작업에서 더 정밀한 답변을 제공하는 OpenAI의 고연산 GPT-5.4 모델입니다." - }, - "pt": { - "description": "A variante GPT-5.4 da OpenAI com mais computação para tarefas difíceis de código, raciocínio, agentes e trabalho profissional." - }, - "ru": { - "description": "Версия GPT-5.4 от OpenAI с повышенными вычислениями для сложного программирования, рассуждений, агентов и профессиональных задач." - }, - "tr": { - "description": "OpenAI'ın zorlu kodlama, akıl yürütme, aracı ve profesyonel görevler için daha yüksek işlem gücüne sahip GPT-5.4 sürümü." - }, - "zh-Hans": { - "description": "OpenAI 的高算力 GPT-5.4 变体,面向需要更精确回答的高难度编码、推理、智能体和专业任务。" - }, - "zh-Hant": { - "description": "OpenAI 的高算力 GPT-5.4 變體,面向需要更精確回答的高難度編碼、推理、智慧體和專業任務。" - } - }, - "verified": true, - "sources": [ - { - "url": "https://developers.openai.com/api/docs/models/gpt-5.4-pro", - "title": "GPT-5.4 Pro model documentation", - "fields": [ - "docsUrl", - "contextWindow", - "maxOutput", - "tokenPricing", - "knowledgeCutoff", - "inputModalities", - "outputModalities", - "capabilities", - "releaseDate" - ] - }, - { - "url": "https://openai.com/index/introducing-gpt-5-4/", - "title": "Introducing GPT-5.4", - "fields": ["name", "description", "releaseDate", "lifecycle"] - } - ], - "lastVerifiedAt": "2026-07-21", - "verifiedBy": "codex-agent", - "confidence": "high", - "websiteUrl": "https://openai.com", - "docsUrl": "https://developers.openai.com/api/docs/models/gpt-5.4-pro", - "vendor": "OpenAI", - "size": null, - "contextWindow": 1050000, - "maxOutput": 128000, - "tokenPricing": { - "status": "available", - "primaryOffer": "global-standard", - "offers": [ - { - "id": "global-standard", - "currency": "USD", - "region": "global", - "serviceTier": "standard", - "effectiveFrom": null, - "effectiveTo": null, - "tiers": [ - { - "condition": null, - "rates": { - "input": 30, - "output": 180, - "cacheRead": null, - "cacheWrite": null - } - } - ] - } - ] - }, - "releaseDate": "2026-03-05", - "lifecycle": "maintained", - "knowledgeCutoff": "2025-08-31", - "inputModalities": ["text", "image"], - "outputModalities": ["text"], - "capabilities": ["function-calling", "tool-choice", "reasoning"], - "benchmarks": { - "sweBench": null, - "terminalBench": null, - "mmmu": null, - "mmmuPro": null, - "webDevArena": null, - "sciCode": null, - "liveCodeBench": null - }, - "platformUrls": { "huggingface": null, "artificialAnalysis": null, "openrouter": null } -} diff --git a/manifests/models/gpt-5-5-pro.json b/manifests/models/gpt-5-5-pro.json deleted file mode 100644 index 72eba766..00000000 --- a/manifests/models/gpt-5-5-pro.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "$schema": "../$schemas/model.schema.json", - "id": "gpt-5-5-pro", - "name": "GPT-5.5 Pro", - "description": "OpenAI's higher-compute GPT-5.5 variant for difficult coding, reasoning, agentic, and professional tasks requiring more precise answers.", - "translations": { - "de": { - "description": "OpenAIs rechenintensivere GPT-5.5-Variante für schwierige Coding-, Reasoning-, Agenten- und professionelle Aufgaben mit präziseren Antworten." - }, - "es": { - "description": "La variante GPT-5.5 de OpenAI con más cómputo para tareas difíciles de código, razonamiento, agentes y trabajo profesional." - }, - "fr": { - "description": "La variante GPT-5.5 d’OpenAI à calcul renforcé pour le codage, le raisonnement, les agents et les tâches professionnelles difficiles." - }, - "id": { - "description": "Varian GPT-5.5 OpenAI dengan komputasi lebih tinggi untuk tugas coding, penalaran, agen, dan profesional yang sulit." - }, - "ja": { - "description": "難しいコーディング、推論、エージェント、専門業務でより正確な回答を生成するOpenAIの高計算量GPT-5.5モデル。" - }, - "ko": { - "description": "어려운 코딩, 추론, 에이전트 및 전문 작업에서 더 정밀한 답변을 제공하는 OpenAI의 고연산 GPT-5.5 모델입니다." - }, - "pt": { - "description": "A variante GPT-5.5 da OpenAI com mais computação para tarefas difíceis de código, raciocínio, agentes e trabalho profissional." - }, - "ru": { - "description": "Версия GPT-5.5 от OpenAI с повышенными вычислениями для сложного программирования, рассуждений, агентов и профессиональных задач." - }, - "tr": { - "description": "OpenAI'ın zorlu kodlama, akıl yürütme, aracı ve profesyonel görevler için daha yüksek işlem gücüne sahip GPT-5.5 sürümü." - }, - "zh-Hans": { - "description": "OpenAI 的高算力 GPT-5.5 变体,面向需要更精确回答的高难度编码、推理、智能体和专业任务。" - }, - "zh-Hant": { - "description": "OpenAI 的高算力 GPT-5.5 變體,面向需要更精確回答的高難度編碼、推理、智慧體和專業任務。" - } - }, - "verified": true, - "sources": [ - { - "url": "https://developers.openai.com/api/docs/models/gpt-5.5-pro", - "title": "GPT-5.5 Pro model documentation", - "fields": [ - "docsUrl", - "contextWindow", - "maxOutput", - "tokenPricing", - "knowledgeCutoff", - "inputModalities", - "outputModalities", - "capabilities", - "releaseDate" - ] - }, - { - "url": "https://openai.com/index/introducing-gpt-5-5/", - "title": "Introducing GPT-5.5", - "fields": ["name", "description", "releaseDate", "lifecycle"] - } - ], - "lastVerifiedAt": "2026-07-21", - "verifiedBy": "codex-agent", - "confidence": "high", - "websiteUrl": "https://openai.com", - "docsUrl": "https://developers.openai.com/api/docs/models/gpt-5.5-pro", - "vendor": "OpenAI", - "size": null, - "contextWindow": 1050000, - "maxOutput": 128000, - "tokenPricing": { - "status": "available", - "primaryOffer": "global-standard", - "offers": [ - { - "id": "global-standard", - "currency": "USD", - "region": "global", - "serviceTier": "standard", - "effectiveFrom": null, - "effectiveTo": null, - "tiers": [ - { - "condition": null, - "rates": { - "input": 30, - "output": 180, - "cacheRead": null, - "cacheWrite": null - } - } - ] - } - ] - }, - "releaseDate": "2026-04-23", - "lifecycle": "maintained", - "knowledgeCutoff": "2025-12-01", - "inputModalities": ["text", "image"], - "outputModalities": ["text"], - "capabilities": ["function-calling", "tool-choice", "structured-outputs", "reasoning"], - "benchmarks": { - "sweBench": null, - "terminalBench": null, - "mmmu": null, - "mmmuPro": null, - "webDevArena": null, - "sciCode": null, - "liveCodeBench": null - }, - "platformUrls": { "huggingface": null, "artificialAnalysis": null, "openrouter": null } -} diff --git a/manifests/models/gpt-5-6-luna.json b/manifests/models/gpt-5-6-luna.json index 6decb8f7..39535eee 100644 --- a/manifests/models/gpt-5-6-luna.json +++ b/manifests/models/gpt-5-6-luna.json @@ -66,7 +66,7 @@ "websiteUrl": "https://openai.com", "docsUrl": "https://developers.openai.com/api/docs/models/gpt-5.6-luna", "vendor": "OpenAI", - "size": "Unknown", + "size": null, "contextWindow": 1050000, "maxOutput": 128000, "tokenPricing": { diff --git a/manifests/models/gpt-5-6-sol.json b/manifests/models/gpt-5-6-sol.json index 673298b7..6fdb183e 100644 --- a/manifests/models/gpt-5-6-sol.json +++ b/manifests/models/gpt-5-6-sol.json @@ -66,7 +66,7 @@ "websiteUrl": "https://openai.com", "docsUrl": "https://developers.openai.com/api/docs/models/gpt-5.6-sol", "vendor": "OpenAI", - "size": "Unknown", + "size": null, "contextWindow": 1050000, "maxOutput": 128000, "tokenPricing": { diff --git a/manifests/models/gpt-5-6-terra.json b/manifests/models/gpt-5-6-terra.json index fb34aea9..197d11dd 100644 --- a/manifests/models/gpt-5-6-terra.json +++ b/manifests/models/gpt-5-6-terra.json @@ -66,7 +66,7 @@ "websiteUrl": "https://openai.com", "docsUrl": "https://developers.openai.com/api/docs/models/gpt-5.6-terra", "vendor": "OpenAI", - "size": "Unknown", + "size": null, "contextWindow": 1050000, "maxOutput": 128000, "tokenPricing": { diff --git a/manifests/models/gpt-5-codex.json b/manifests/models/gpt-5-codex.json index abfe6c15..ff69e116 100644 --- a/manifests/models/gpt-5-codex.json +++ b/manifests/models/gpt-5-codex.json @@ -42,7 +42,7 @@ "websiteUrl": "https://openai.com", "docsUrl": "https://platform.openai.com/docs/models/gpt-5-codex", "vendor": "OpenAI", - "size": "Unknown", + "size": null, "contextWindow": 400000, "maxOutput": 128000, "tokenPricing": { diff --git a/manifests/models/gpt-5-pro.json b/manifests/models/gpt-5-pro.json deleted file mode 100644 index 31c2477a..00000000 --- a/manifests/models/gpt-5-pro.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "$schema": "../$schemas/model.schema.json", - "id": "gpt-5-pro", - "name": "GPT-5 Pro", - "description": "High-compute GPT-5 variant for difficult professional reasoning and software engineering work.", - "translations": { - "zh-Hans": { - "description": "GPT-5 Pro 是 OpenAI 发布的独立模型版本,具备明确的编程或软件工程能力。" - }, - "de": { - "description": "GPT-5 Pro ist eine eigenständige Modellversion von OpenAI mit klar ausgewiesenen Fähigkeiten für Programmierung oder Softwareentwicklung." - }, - "es": { - "description": "GPT-5 Pro es una versión de modelo independiente de OpenAI con capacidades explícitas de programación o ingeniería de software." - }, - "fr": { - "description": "GPT-5 Pro est une version de modèle distincte de OpenAI, dotée de capacités explicites en programmation ou en génie logiciel." - }, - "id": { - "description": "GPT-5 Pro adalah versi model mandiri dari OpenAI dengan kemampuan pemrograman atau rekayasa perangkat lunak yang dinyatakan secara jelas." - }, - "ja": { - "description": "GPT-5 Pro は OpenAI が公開した独立したモデル版で、プログラミングまたはソフトウェアエンジニアリング能力を明示しています。" - }, - "ko": { - "description": "GPT-5 Pro은(는) OpenAI가 공개한 독립 모델 버전으로, 프로그래밍 또는 소프트웨어 엔지니어링 기능을 명시적으로 제공합니다." - }, - "pt": { - "description": "GPT-5 Pro é uma versão de modelo independente da OpenAI, com capacidades explícitas de programação ou engenharia de software." - }, - "ru": { - "description": "GPT-5 Pro — самостоятельная версия модели от OpenAI с явно заявленными возможностями программирования или разработки ПО." - }, - "tr": { - "description": "GPT-5 Pro, OpenAI tarafından yayımlanan ve açıkça belirtilmiş programlama veya yazılım mühendisliği yeteneklerine sahip bağımsız bir model sürümüdür." - }, - "zh-Hant": { - "description": "GPT-5 Pro 是 OpenAI 發布的獨立模型版本,具備明確的程式設計或軟體工程能力。" - } - }, - "verified": true, - "sources": [ - { - "url": "https://developers.openai.com/api/docs/models/gpt-5-pro", - "title": "GPT-5 Pro official documentation", - "fields": [ - "name", - "description", - "docsUrl", - "size", - "contextWindow", - "maxOutput", - "tokenPricing", - "releaseDate", - "lifecycle", - "knowledgeCutoff", - "inputModalities", - "outputModalities", - "capabilities" - ] - } - ], - "lastVerifiedAt": "2026-07-21", - "verifiedBy": "codex-agent", - "confidence": "high", - "websiteUrl": "https://openai.com", - "docsUrl": "https://developers.openai.com/api/docs/models/gpt-5-pro", - "vendor": "OpenAI", - "size": null, - "contextWindow": 400000, - "maxOutput": 272000, - "tokenPricing": { - "status": "available", - "primaryOffer": "global-standard", - "offers": [ - { - "id": "global-standard", - "currency": "USD", - "region": "global", - "serviceTier": "standard", - "effectiveFrom": null, - "effectiveTo": null, - "tiers": [ - { - "condition": null, - "rates": { - "input": 15, - "output": 120, - "cacheRead": null, - "cacheWrite": null - } - } - ] - } - ] - }, - "releaseDate": "2025-10-06", - "lifecycle": "maintained", - "knowledgeCutoff": "2024-09-30", - "inputModalities": ["text", "image"], - "outputModalities": ["text"], - "capabilities": ["function-calling", "tool-choice", "structured-outputs", "reasoning"], - "benchmarks": { - "sweBench": null, - "terminalBench": null, - "mmmu": null, - "mmmuPro": null, - "webDevArena": null, - "sciCode": null, - "liveCodeBench": null - }, - "platformUrls": { - "huggingface": null, - "artificialAnalysis": null, - "openrouter": null - } -} diff --git a/manifests/models/gpt-5.json b/manifests/models/gpt-5.json index dbccc569..de0c4bdb 100644 --- a/manifests/models/gpt-5.json +++ b/manifests/models/gpt-5.json @@ -42,7 +42,7 @@ "websiteUrl": "https://openai.com", "docsUrl": "https://platform.openai.com/docs/models/gpt-5", "vendor": "OpenAI", - "size": "Unknown", + "size": null, "contextWindow": 400000, "maxOutput": 128000, "tokenPricing": { diff --git a/manifests/models/grok-build-0-1.json b/manifests/models/grok-build-0-1.json deleted file mode 100644 index 877c5aa0..00000000 --- a/manifests/models/grok-build-0-1.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "$schema": "../$schemas/model.schema.json", - "id": "grok-build-0-1", - "name": "Grok Build 0.1", - "description": "Dedicated coding model trained for agentic software engineering, web development, and tool-driven workflows.", - "translations": { - "zh-Hans": { - "description": "Grok Build 0.1 是 xAI 发布的独立模型版本,具备明确的编程或软件工程能力。" - }, - "de": { - "description": "Grok Build 0.1 ist eine eigenständige Modellversion von xAI mit klar ausgewiesenen Fähigkeiten für Programmierung oder Softwareentwicklung." - }, - "es": { - "description": "Grok Build 0.1 es una versión de modelo independiente de xAI con capacidades explícitas de programación o ingeniería de software." - }, - "fr": { - "description": "Grok Build 0.1 est une version de modèle distincte de xAI, dotée de capacités explicites en programmation ou en génie logiciel." - }, - "id": { - "description": "Grok Build 0.1 adalah versi model mandiri dari xAI dengan kemampuan pemrograman atau rekayasa perangkat lunak yang dinyatakan secara jelas." - }, - "ja": { - "description": "Grok Build 0.1 は xAI が公開した独立したモデル版で、プログラミングまたはソフトウェアエンジニアリング能力を明示しています。" - }, - "ko": { - "description": "Grok Build 0.1은(는) xAI가 공개한 독립 모델 버전으로, 프로그래밍 또는 소프트웨어 엔지니어링 기능을 명시적으로 제공합니다." - }, - "pt": { - "description": "Grok Build 0.1 é uma versão de modelo independente da xAI, com capacidades explícitas de programação ou engenharia de software." - }, - "ru": { - "description": "Grok Build 0.1 — самостоятельная версия модели от xAI с явно заявленными возможностями программирования или разработки ПО." - }, - "tr": { - "description": "Grok Build 0.1, xAI tarafından yayımlanan ve açıkça belirtilmiş programlama veya yazılım mühendisliği yeteneklerine sahip bağımsız bir model sürümüdür." - }, - "zh-Hant": { - "description": "Grok Build 0.1 是 xAI 發布的獨立模型版本,具備明確的程式設計或軟體工程能力。" - } - }, - "verified": true, - "sources": [ - { - "url": "https://docs.x.ai/developers/models/grok-build-0.1", - "title": "Grok Build 0.1 official documentation", - "fields": [ - "name", - "description", - "docsUrl", - "size", - "contextWindow", - "maxOutput", - "tokenPricing", - "releaseDate", - "lifecycle", - "knowledgeCutoff", - "inputModalities", - "outputModalities", - "capabilities" - ] - } - ], - "lastVerifiedAt": "2026-07-21", - "verifiedBy": "codex-agent", - "confidence": "high", - "websiteUrl": "https://x.ai", - "docsUrl": "https://docs.x.ai/developers/models/grok-build-0.1", - "vendor": "xAI", - "size": null, - "contextWindow": 256000, - "maxOutput": null, - "tokenPricing": { - "status": "available", - "primaryOffer": "global-standard", - "offers": [ - { - "id": "global-standard", - "currency": "USD", - "region": "global", - "serviceTier": "standard", - "effectiveFrom": null, - "effectiveTo": null, - "tiers": [ - { - "condition": null, - "rates": { - "input": 1, - "output": 2, - "cacheRead": 0.2, - "cacheWrite": null - } - } - ] - } - ] - }, - "releaseDate": "2026-05-19", - "lifecycle": "latest", - "knowledgeCutoff": null, - "inputModalities": ["text", "image"], - "outputModalities": ["text"], - "capabilities": ["function-calling", "tool-choice", "structured-outputs", "reasoning"], - "benchmarks": { - "sweBench": null, - "terminalBench": null, - "mmmu": null, - "mmmuPro": null, - "webDevArena": null, - "sciCode": null, - "liveCodeBench": null - }, - "platformUrls": { - "huggingface": null, - "artificialAnalysis": null, - "openrouter": null - } -} diff --git a/manifests/models/grok-code-fast-1.json b/manifests/models/grok-code-fast-1.json index 52c2b045..25c180db 100644 --- a/manifests/models/grok-code-fast-1.json +++ b/manifests/models/grok-code-fast-1.json @@ -52,7 +52,7 @@ "websiteUrl": "https://x.ai", "docsUrl": "https://docs.x.ai/docs/models/grok-code-fast-1", "vendor": "xAI", - "size": "Unknown", + "size": null, "contextWindow": 256000, "maxOutput": 10000, "tokenPricing": { diff --git a/manifests/models/kat-coder-pro-v1.json b/manifests/models/kat-coder-pro-v1.json deleted file mode 100644 index 7f418c69..00000000 --- a/manifests/models/kat-coder-pro-v1.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "$schema": "../$schemas/model.schema.json", - "id": "kat-coder-pro-v1", - "name": "KAT-Coder-Pro V1", - "description": "KwaiKAT's most advanced agentic coding model in the KAT-Coder series. Designed for autonomous programming with tool calling, multi-turn interaction, and instruction following.", - "translations": { - "zh-Hans": { - "description": "KwaiKAT 最先进的代理编码模型,属于 KAT-Coder 系列。专为自主编程设计,具备工具调用、多轮交互和指令遵循能力。" - }, - "de": { - "description": "KwaiKATs modernstes agentic Coding-Modell aus der KAT-Coder-Serie. Speziell fur autonomes Programmierung entwickelt mit Tool-Calling, Multi-Turn-Interaktion und Instruction-Following-Fahigkeiten." - }, - "ko": { - "description": "KwaiKAT의 KAT-Coder 시리즈에서 가장 진보된 에이전트 코딩 모델입니다. 도구 호출, 다중 턴 상호작용 및 명령 따르기 기능을 갖춘 자율 프로그래밍을 위해 설계되었습니다." - }, - "es": { - "description": "Modelo de codificacion agentico mas avanzado de KwaiKAT en la serie KAT-Coder. Diseñado para programacion autonoma con llamadas a herramientas, interaccion multi-turno y seguimiento de instrucciones." - }, - "fr": { - "description": "Le modele de codage agentique le plus avance de KwaiKAT dans la serie KAT-Coder. Conçu pour la programmation autonome avec appel d'outils, interaction multi-tours et suivi d'instructions." - }, - "id": { - "description": "Model coding agentik paling canggih dari KwaiKAT dalam seri KAT-Coder. Dirancang khusus untuk pemrograman otonom dengan kemampuan pemanggilan alat, interaksi multi-turn, dan pengikutan instruksi." - }, - "ja": { - "description": "KwaiKATのKAT-Coderシリーズで最も高度なエージェント型コーディングモデル。ツール呼び出し、マルチターン対話、命令追従機能を備えた自律プログラミング向けに設計されています。" - }, - "pt": { - "description": "Modelo de codificacao agentico mais avancado da KwaiKAT na serie KAT-Coder. Projetado para programacao autonoma com chamada de ferramentas, interacao multi-turno e seguimento de instrucoes." - }, - "ru": { - "description": "Самая продвинутая агентная модель кодирования KwaiKAT в серии KAT-Coder. Разработана для автономного программирования с вызовом инструментов, многоходового взаимодействия и выполнения инструкций." - }, - "tr": { - "description": "KwaiKAT'in KAT-Coder serisindeki en gelismis agentik kodlama modeli. Ara cagirma, cok turlu etkilesim ve talimat takip etme yetenekleri ile otonom programlama icin tasarlanmistir." - }, - "zh-Hant": { - "description": "KwaiKAT 最先進的代理編碼模型,屬於 KAT-Coder 系列。專為自主編程設計,具備工具調用、多輪交互和指令遵循能力。" - } - }, - "verified": false, - "websiteUrl": "https://openrouter.ai/kwaipilot", - "docsUrl": "https://openrouter.ai/kwaipilot/kat-coder-pro:free", - "vendor": "StreamLake", - "size": "Unknown", - "contextWindow": 256000, - "maxOutput": 128000, - "tokenPricing": { - "status": "available", - "primaryOffer": "global-standard", - "offers": [ - { - "id": "global-standard", - "currency": "USD", - "region": "global", - "serviceTier": "standard", - "effectiveFrom": null, - "effectiveTo": null, - "tiers": [ - { - "condition": null, - "rates": { - "input": 0, - "output": 0, - "cacheRead": null, - "cacheWrite": null - } - } - ] - } - ] - }, - "releaseDate": "2025-11-11", - "lifecycle": "latest", - "knowledgeCutoff": "2025-11", - "inputModalities": ["text"], - "outputModalities": ["text"], - "capabilities": ["function-calling", "tool-choice", "structured-outputs", "reasoning"], - "benchmarks": { - "sweBench": null, - "terminalBench": null, - "mmmu": null, - "mmmuPro": null, - "webDevArena": null, - "sciCode": 36.6, - "liveCodeBench": 74.7 - }, - "platformUrls": { - "huggingface": null, - "artificialAnalysis": "https://artificialanalysis.ai/models/kat-coder-pro-v1", - "openrouter": "https://openrouter.ai/kwaipilot/kat-coder-pro:free" - } -} diff --git a/manifests/models/kimi-dev-72b.json b/manifests/models/kimi-dev-72b.json deleted file mode 100644 index f4c44cbf..00000000 --- a/manifests/models/kimi-dev-72b.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "$schema": "../$schemas/model.schema.json", - "id": "kimi-dev-72b", - "name": "Kimi-Dev-72B", - "description": "Open-weight 72B model trained specifically for software engineering and autonomous code-repair tasks.", - "translations": { - "zh-Hans": { - "description": "Kimi-Dev-72B 是 Moonshot 发布的独立模型版本,具备明确的编程或软件工程能力。" - }, - "de": { - "description": "Kimi-Dev-72B ist eine eigenständige Modellversion von Moonshot mit klar ausgewiesenen Fähigkeiten für Programmierung oder Softwareentwicklung." - }, - "es": { - "description": "Kimi-Dev-72B es una versión de modelo independiente de Moonshot con capacidades explícitas de programación o ingeniería de software." - }, - "fr": { - "description": "Kimi-Dev-72B est une version de modèle distincte de Moonshot, dotée de capacités explicites en programmation ou en génie logiciel." - }, - "id": { - "description": "Kimi-Dev-72B adalah versi model mandiri dari Moonshot dengan kemampuan pemrograman atau rekayasa perangkat lunak yang dinyatakan secara jelas." - }, - "ja": { - "description": "Kimi-Dev-72B は Moonshot が公開した独立したモデル版で、プログラミングまたはソフトウェアエンジニアリング能力を明示しています。" - }, - "ko": { - "description": "Kimi-Dev-72B은(는) Moonshot가 공개한 독립 모델 버전으로, 프로그래밍 또는 소프트웨어 엔지니어링 기능을 명시적으로 제공합니다." - }, - "pt": { - "description": "Kimi-Dev-72B é uma versão de modelo independente da Moonshot, com capacidades explícitas de programação ou engenharia de software." - }, - "ru": { - "description": "Kimi-Dev-72B — самостоятельная версия модели от Moonshot с явно заявленными возможностями программирования или разработки ПО." - }, - "tr": { - "description": "Kimi-Dev-72B, Moonshot tarafından yayımlanan ve açıkça belirtilmiş programlama veya yazılım mühendisliği yeteneklerine sahip bağımsız bir model sürümüdür." - }, - "zh-Hant": { - "description": "Kimi-Dev-72B 是 Moonshot 發布的獨立模型版本,具備明確的程式設計或軟體工程能力。" - } - }, - "verified": true, - "sources": [ - { - "url": "https://huggingface.co/moonshotai/Kimi-Dev-72B", - "title": "Kimi-Dev-72B official documentation", - "fields": [ - "name", - "description", - "docsUrl", - "size", - "contextWindow", - "maxOutput", - "tokenPricing", - "releaseDate", - "lifecycle", - "knowledgeCutoff", - "inputModalities", - "outputModalities", - "capabilities" - ] - } - ], - "lastVerifiedAt": "2026-07-21", - "verifiedBy": "codex-agent", - "confidence": "high", - "websiteUrl": "https://www.moonshot.ai", - "docsUrl": "https://huggingface.co/moonshotai/Kimi-Dev-72B", - "vendor": "Moonshot", - "size": "72B", - "contextWindow": 131072, - "maxOutput": null, - "tokenPricing": { - "status": "not-applicable", - "reason": "open-weights-only", - "primaryOffer": null, - "offers": [] - }, - "releaseDate": "2025-06-17", - "lifecycle": "maintained", - "knowledgeCutoff": null, - "inputModalities": ["text"], - "outputModalities": ["text"], - "capabilities": ["function-calling", "tool-choice"], - "benchmarks": { - "sweBench": null, - "terminalBench": null, - "mmmu": null, - "mmmuPro": null, - "webDevArena": null, - "sciCode": null, - "liveCodeBench": null - }, - "platformUrls": { - "huggingface": "https://huggingface.co/moonshotai/Kimi-Dev-72B", - "artificialAnalysis": null, - "openrouter": null - } -} diff --git a/manifests/models/qwen3-5-plus.json b/manifests/models/qwen3-5-plus.json deleted file mode 100644 index bdf2eeaa..00000000 --- a/manifests/models/qwen3-5-plus.json +++ /dev/null @@ -1,139 +0,0 @@ -{ - "$schema": "../$schemas/model.schema.json", - "id": "qwen3-5-plus", - "name": "Qwen3.5 Plus", - "description": "Multimodal Qwen model offered in Alibaba Cloud Coding Plan for coding agents and long-context development tasks.", - "translations": { - "zh-Hans": { - "description": "Qwen3.5 Plus 是 Alibaba 发布的独立模型版本,具备明确的编程或软件工程能力。" - }, - "de": { - "description": "Qwen3.5 Plus ist eine eigenständige Modellversion von Alibaba mit klar ausgewiesenen Fähigkeiten für Programmierung oder Softwareentwicklung." - }, - "es": { - "description": "Qwen3.5 Plus es una versión de modelo independiente de Alibaba con capacidades explícitas de programación o ingeniería de software." - }, - "fr": { - "description": "Qwen3.5 Plus est une version de modèle distincte de Alibaba, dotée de capacités explicites en programmation ou en génie logiciel." - }, - "id": { - "description": "Qwen3.5 Plus adalah versi model mandiri dari Alibaba dengan kemampuan pemrograman atau rekayasa perangkat lunak yang dinyatakan secara jelas." - }, - "ja": { - "description": "Qwen3.5 Plus は Alibaba が公開した独立したモデル版で、プログラミングまたはソフトウェアエンジニアリング能力を明示しています。" - }, - "ko": { - "description": "Qwen3.5 Plus은(는) Alibaba가 공개한 독립 모델 버전으로, 프로그래밍 또는 소프트웨어 엔지니어링 기능을 명시적으로 제공합니다." - }, - "pt": { - "description": "Qwen3.5 Plus é uma versão de modelo independente da Alibaba, com capacidades explícitas de programação ou engenharia de software." - }, - "ru": { - "description": "Qwen3.5 Plus — самостоятельная версия модели от Alibaba с явно заявленными возможностями программирования или разработки ПО." - }, - "tr": { - "description": "Qwen3.5 Plus, Alibaba tarafından yayımlanan ve açıkça belirtilmiş programlama veya yazılım mühendisliği yeteneklerine sahip bağımsız bir model sürümüdür." - }, - "zh-Hant": { - "description": "Qwen3.5 Plus 是 Alibaba 發布的獨立模型版本,具備明確的程式設計或軟體工程能力。" - } - }, - "verified": true, - "sources": [ - { - "url": "https://help.aliyun.com/en/model-studio/coding-plan", - "title": "Qwen3.5 Plus official documentation", - "fields": [ - "name", - "description", - "docsUrl", - "size", - "contextWindow", - "maxOutput", - "releaseDate", - "lifecycle", - "knowledgeCutoff", - "inputModalities", - "outputModalities", - "capabilities" - ] - }, - { - "url": "https://help.aliyun.com/en/model-studio/model-pricing", - "title": "Alibaba Cloud Model Studio model pricing", - "fields": ["tokenPricing"] - } - ], - "lastVerifiedAt": "2026-07-21", - "verifiedBy": "codex-agent", - "confidence": "high", - "websiteUrl": "https://www.alibabacloud.com", - "docsUrl": "https://help.aliyun.com/en/model-studio/coding-plan", - "vendor": "Alibaba", - "size": null, - "contextWindow": 1000000, - "maxOutput": 65536, - "tokenPricing": { - "status": "available", - "primaryOffer": "cn-standard", - "offers": [ - { - "id": "cn-standard", - "currency": "CNY", - "region": "CN", - "serviceTier": "standard", - "effectiveFrom": null, - "effectiveTo": null, - "tiers": [ - { - "condition": { "metric": "inputTokens", "min": 1, "max": 128000 }, - "rates": { - "input": 0.8, - "output": 4.8, - "cacheRead": null, - "cacheWrite": null - } - }, - { - "condition": { "metric": "inputTokens", "min": 128001, "max": 256000 }, - "rates": { - "input": 2, - "output": 12, - "cacheRead": null, - "cacheWrite": null - } - }, - { - "condition": { "metric": "inputTokens", "min": 256001, "max": 1000000 }, - "rates": { - "input": 4, - "output": 24, - "cacheRead": null, - "cacheWrite": null - } - } - ] - } - ] - }, - "releaseDate": "2026-02-15", - "lifecycle": "maintained", - "knowledgeCutoff": null, - "inputModalities": ["text", "image"], - "outputModalities": ["text"], - "capabilities": ["function-calling", "tool-choice", "structured-outputs", "reasoning"], - "benchmarks": { - "sweBench": null, - "terminalBench": null, - "mmmu": null, - "mmmuPro": null, - "webDevArena": null, - "sciCode": null, - "liveCodeBench": null - }, - "platformUrls": { - "huggingface": null, - "artificialAnalysis": null, - "openrouter": null - } -} diff --git a/manifests/models/qwen3-6-27b.json b/manifests/models/qwen3-6-27b.json new file mode 100644 index 00000000..f8f2cab9 --- /dev/null +++ b/manifests/models/qwen3-6-27b.json @@ -0,0 +1,125 @@ +{ + "$schema": "../$schemas/model.schema.json", + "id": "qwen3-6-27b", + "name": "Qwen3.6-27B", + "description": "Dense open-weight Qwen3.6 model for multimodal reasoning and agentic coding, with 27.8B parameters, hybrid thinking, and a 262K-token context.", + "translations": { + "de": { + "description": "Dichtes Qwen3.6-Modell mit offenen Gewichten für multimodales Schlussfolgern und agentisches Coding, mit 27,8B Parametern, hybridem Denken und 262K Kontext." + }, + "es": { + "description": "Modelo Qwen3.6 denso y de pesos abiertos para razonamiento multimodal y programación agéntica, con 27,8B parámetros, pensamiento híbrido y 262K de contexto." + }, + "fr": { + "description": "Modèle Qwen3.6 dense à poids ouverts pour le raisonnement multimodal et le codage agentique, avec 27,8B paramètres, pensée hybride et 262K de contexte." + }, + "id": { + "description": "Model Qwen3.6 dense berbobot terbuka untuk penalaran multimodal dan coding agentik, dengan 27,8B parameter, pemikiran hibrida, dan konteks 262K." + }, + "ja": { + "description": "27.8Bパラメータ、ハイブリッド思考、262Kコンテキストを備え、マルチモーダル推論とエージェント型コーディングに対応する高密度なQwen3.6オープンウェイトモデル。" + }, + "ko": { + "description": "278억 매개변수, 하이브리드 사고, 262K 컨텍스트로 멀티모달 추론과 에이전트 코딩을 지원하는 밀집형 Qwen3.6 오픈 웨이트 모델입니다." + }, + "pt": { + "description": "Modelo Qwen3.6 denso e de pesos abertos para raciocínio multimodal e programação agêntica, com 27,8B parâmetros, pensamento híbrido e contexto de 262K." + }, + "ru": { + "description": "Плотная модель Qwen3.6 с открытыми весами для мультимодального рассуждения и агентного программирования: 27,8 млрд параметров, гибридное мышление и контекст 262K." + }, + "tr": { + "description": "27,8B parametre, hibrit düşünme ve 262K bağlamla çok modlu akıl yürütme ve aracılı kodlama için yoğun, açık ağırlıklı Qwen3.6 modeli." + }, + "zh-Hans": { + "description": "面向多模态推理和智能体编程的稠密开放权重 Qwen3.6 模型,拥有 27.8B 参数、混合思考模式和 262K 上下文。" + }, + "zh-Hant": { + "description": "面向多模態推理和智慧體程式設計的稠密開放權重 Qwen3.6 模型,擁有 27.8B 參數、混合思考模式和 262K 上下文。" + } + }, + "verified": true, + "sources": [ + { + "url": "https://qwen.ai/blog?id=qwen3.6-27b&lang=en", + "title": "Qwen3.6-27B official release announcement", + "fields": ["name", "description", "docsUrl", "releaseDate", "capabilities"] + }, + { + "url": "https://huggingface.co/Qwen/Qwen3.6-27B", + "title": "Qwen3.6-27B official model card", + "fields": [ + "size", + "contextWindow", + "inputModalities", + "outputModalities", + "capabilities", + "platformUrls.huggingface" + ] + }, + { + "url": "https://www.alibabacloud.com/help/en/model-studio/model-pricing", + "title": "Alibaba Cloud Model Studio model pricing", + "fields": ["tokenPricing"] + }, + { + "url": "https://artificialanalysis.ai/models/qwen3-6-27b/", + "title": "Artificial Analysis Qwen3.6-27B model page", + "fields": ["releaseDate", "platformUrls.artificialAnalysis"] + } + ], + "lastVerifiedAt": "2026-07-26", + "verifiedBy": "codex-agent", + "confidence": "high", + "websiteUrl": "https://qwen.ai", + "docsUrl": "https://qwen.ai/blog?id=qwen3.6-27b&lang=en", + "vendor": "Alibaba", + "size": "27.8B", + "contextWindow": 262144, + "maxOutput": null, + "tokenPricing": { + "status": "available", + "primaryOffer": "sg-standard", + "offers": [ + { + "id": "sg-standard", + "currency": "USD", + "region": "SG", + "serviceTier": "standard", + "effectiveFrom": null, + "effectiveTo": null, + "tiers": [ + { + "condition": { "metric": "inputTokens", "min": 1, "max": 256000 }, + "rates": { + "input": 0.6, + "output": 3.6, + "cacheRead": null, + "cacheWrite": null + } + } + ] + } + ] + }, + "releaseDate": "2026-04-22", + "lifecycle": "latest", + "knowledgeCutoff": null, + "inputModalities": ["text", "image", "video"], + "outputModalities": ["text"], + "capabilities": ["function-calling", "tool-choice", "structured-outputs", "reasoning"], + "benchmarks": { + "sweBench": null, + "terminalBench": null, + "mmmu": null, + "mmmuPro": null, + "webDevArena": null, + "sciCode": null, + "liveCodeBench": null + }, + "platformUrls": { + "huggingface": "https://huggingface.co/Qwen/Qwen3.6-27B", + "artificialAnalysis": "https://artificialanalysis.ai/models/qwen3-6-27b/", + "openrouter": null + } +} diff --git a/manifests/models/qwen3-6-35b-a3b.json b/manifests/models/qwen3-6-35b-a3b.json new file mode 100644 index 00000000..9f4b73e8 --- /dev/null +++ b/manifests/models/qwen3-6-35b-a3b.json @@ -0,0 +1,130 @@ +{ + "$schema": "../$schemas/model.schema.json", + "id": "qwen3-6-35b-a3b", + "name": "Qwen3.6-35B-A3B", + "description": "Open-weight Qwen3.6 MoE model for agentic coding and multimodal reasoning, with 35B total and 3B active parameters, offered through the API as Qwen3.6-Flash.", + "translations": { + "de": { + "description": "Qwen3.6-MoE-Modell mit offenen Gewichten für agentisches Coding und multimodales Schlussfolgern, mit 35B Gesamt- und 3B aktiven Parametern; API-Name Qwen3.6-Flash." + }, + "es": { + "description": "Modelo Qwen3.6 MoE de pesos abiertos para programación agéntica y razonamiento multimodal, con 35B parámetros totales y 3B activos; en la API se llama Qwen3.6-Flash." + }, + "fr": { + "description": "Modèle Qwen3.6 MoE à poids ouverts pour le codage agentique et le raisonnement multimodal, avec 35B paramètres au total et 3B actifs, proposé comme Qwen3.6-Flash via API." + }, + "id": { + "description": "Model Qwen3.6 MoE berbobot terbuka untuk coding agentik dan penalaran multimodal, dengan 35B parameter total dan 3B aktif; nama API-nya Qwen3.6-Flash." + }, + "ja": { + "description": "総35B・アクティブ3Bパラメータで、エージェント型コーディングとマルチモーダル推論に対応するQwen3.6 MoEオープンウェイトモデル。API名はQwen3.6-Flash。" + }, + "ko": { + "description": "총 350억·활성 30억 매개변수로 에이전트 코딩과 멀티모달 추론을 지원하는 Qwen3.6 MoE 오픈 웨이트 모델이며 API 이름은 Qwen3.6-Flash입니다." + }, + "pt": { + "description": "Modelo Qwen3.6 MoE de pesos abertos para programação agêntica e raciocínio multimodal, com 35B parâmetros totais e 3B ativos; oferecido na API como Qwen3.6-Flash." + }, + "ru": { + "description": "MoE-модель Qwen3.6 с открытыми весами для агентного программирования и мультимодального рассуждения: 35 млрд параметров, 3 млрд активных; API-имя Qwen3.6-Flash." + }, + "tr": { + "description": "35B toplam ve 3B etkin parametreyle aracılı kodlama ve çok modlu akıl yürütme için açık ağırlıklı Qwen3.6 MoE modeli; API adı Qwen3.6-Flash." + }, + "zh-Hans": { + "description": "面向智能体编程和多模态推理的开放权重 Qwen3.6 MoE 模型,总参数 35B、激活参数 3B,API 名称为 Qwen3.6-Flash。" + }, + "zh-Hant": { + "description": "面向智慧體程式設計和多模態推理的開放權重 Qwen3.6 MoE 模型,總參數 35B、啟用參數 3B,API 名稱為 Qwen3.6-Flash。" + } + }, + "verified": true, + "sources": [ + { + "url": "https://qwen.ai/blog?id=qwen3.6-35b-a3b", + "title": "Qwen3.6-35B-A3B official release announcement", + "fields": ["name", "description", "docsUrl", "releaseDate", "capabilities"] + }, + { + "url": "https://huggingface.co/Qwen/Qwen3.6-35B-A3B", + "title": "Qwen3.6-35B-A3B official model card", + "fields": [ + "size", + "contextWindow", + "inputModalities", + "outputModalities", + "capabilities", + "platformUrls.huggingface" + ] + }, + { + "url": "https://www.alibabacloud.com/help/en/model-studio/newly-released-models", + "title": "Alibaba Cloud Model Studio model release list", + "fields": ["description", "releaseDate"] + }, + { + "url": "https://www.alibabacloud.com/help/en/model-studio/model-pricing", + "title": "Alibaba Cloud Model Studio model pricing", + "fields": ["tokenPricing"] + }, + { + "url": "https://artificialanalysis.ai/models/qwen3-6-35b-a3b/", + "title": "Artificial Analysis Qwen3.6-35B-A3B model page", + "fields": ["releaseDate", "platformUrls.artificialAnalysis"] + } + ], + "lastVerifiedAt": "2026-07-26", + "verifiedBy": "codex-agent", + "confidence": "high", + "websiteUrl": "https://qwen.ai", + "docsUrl": "https://qwen.ai/blog?id=qwen3.6-35b-a3b", + "vendor": "Alibaba", + "size": "35B (3B active)", + "contextWindow": 262144, + "maxOutput": null, + "tokenPricing": { + "status": "available", + "primaryOffer": "global-standard", + "offers": [ + { + "id": "global-standard", + "currency": "USD", + "region": "global", + "serviceTier": "standard", + "effectiveFrom": null, + "effectiveTo": null, + "tiers": [ + { + "condition": { "metric": "inputTokens", "min": 1, "max": 256000 }, + "rates": { + "input": 0.248, + "output": 1.485, + "cacheRead": null, + "cacheWrite": null + } + } + ] + } + ] + }, + "releaseDate": "2026-04-16", + "lifecycle": "latest", + "knowledgeCutoff": null, + "inputModalities": ["text", "image", "video"], + "outputModalities": ["text"], + "capabilities": ["function-calling", "tool-choice", "structured-outputs", "reasoning"], + "benchmarks": { + "sweBench": null, + "terminalBench": null, + "mmmu": null, + "mmmuPro": null, + "webDevArena": null, + "sciCode": null, + "liveCodeBench": null + }, + "platformUrls": { + "huggingface": "https://huggingface.co/Qwen/Qwen3.6-35B-A3B", + "artificialAnalysis": "https://artificialanalysis.ai/models/qwen3-6-35b-a3b/", + "openrouter": null + } +} diff --git a/manifests/models/qwen3-6-max-preview.json b/manifests/models/qwen3-6-max-preview.json new file mode 100644 index 00000000..9c9c6bf2 --- /dev/null +++ b/manifests/models/qwen3-6-max-preview.json @@ -0,0 +1,138 @@ +{ + "$schema": "../$schemas/model.schema.json", + "id": "qwen3-6-max-preview", + "name": "Qwen3.6-Max-Preview", + "description": "Proprietary Qwen3.6 flagship preview for agentic coding, knowledge, and instruction following, later superseded by Qwen3.7-Max.", + "translations": { + "de": { + "description": "Proprietäre Qwen3.6-Flaggschiff-Vorschau für agentisches Coding, Wissen und Anweisungsbefolgung, später durch Qwen3.7-Max abgelöst." + }, + "es": { + "description": "Vista previa propietaria del modelo insignia Qwen3.6 para programación agéntica, conocimiento y seguimiento de instrucciones, reemplazada después por Qwen3.7-Max." + }, + "fr": { + "description": "Aperçu propriétaire du modèle phare Qwen3.6 pour le codage agentique, les connaissances et le suivi d’instructions, ensuite remplacé par Qwen3.7-Max." + }, + "id": { + "description": "Pratinjau model unggulan Qwen3.6 proprietari untuk coding agentik, pengetahuan, dan kepatuhan instruksi, kemudian digantikan oleh Qwen3.7-Max." + }, + "ja": { + "description": "エージェント型コーディング、知識、指示追従に対応するQwen3.6独自旗艦モデルのプレビュー。後にQwen3.7-Maxへ置き換えられました。" + }, + "ko": { + "description": "에이전트 코딩, 지식 및 지시 이행을 위한 독점 Qwen3.6 플래그십 프리뷰로, 이후 Qwen3.7-Max로 대체되었습니다." + }, + "pt": { + "description": "Prévia proprietária do modelo principal Qwen3.6 para programação agêntica, conhecimento e seguimento de instruções, depois substituída pelo Qwen3.7-Max." + }, + "ru": { + "description": "Предварительная версия закрытой флагманской модели Qwen3.6 для агентного программирования, знаний и следования инструкциям, позднее заменённая Qwen3.7-Max." + }, + "tr": { + "description": "Aracılı kodlama, bilgi ve talimat takibi için özel Qwen3.6 amiral modeli önizlemesi; daha sonra Qwen3.7-Max ile değiştirildi." + }, + "zh-Hans": { + "description": "面向智能体编程、知识和指令遵循的闭源 Qwen3.6 旗舰预览模型,后由 Qwen3.7-Max 取代。" + }, + "zh-Hant": { + "description": "面向智慧體程式設計、知識和指令遵循的閉源 Qwen3.6 旗艦預覽模型,後由 Qwen3.7-Max 取代。" + } + }, + "verified": true, + "deprecated": true, + "sources": [ + { + "url": "https://qwen.ai/blog?id=qwen3.6-max-preview", + "title": "Qwen3.6-Max-Preview official release announcement", + "fields": ["name", "description", "docsUrl", "capabilities"] + }, + { + "url": "https://www.alibabacloud.com/help/en/model-studio/text-generation-model", + "title": "Alibaba Cloud Model Studio text generation models", + "fields": ["deprecated", "contextWindow", "capabilities"] + }, + { + "url": "https://www.alibabacloud.com/help/en/model-studio/model-depreciation", + "title": "Alibaba Cloud Model Studio model lifecycle", + "fields": ["deprecated", "lifecycle"] + }, + { + "url": "https://www.alibabacloud.com/help/en/model-studio/model-pricing", + "title": "Alibaba Cloud Model Studio model pricing", + "fields": ["tokenPricing"] + }, + { + "url": "https://artificialanalysis.ai/models/qwen3-6-max/", + "title": "Artificial Analysis Qwen3.6 Max model page", + "fields": [ + "releaseDate", + "inputModalities", + "outputModalities", + "platformUrls.artificialAnalysis" + ] + } + ], + "lastVerifiedAt": "2026-07-26", + "verifiedBy": "codex-agent", + "confidence": "high", + "websiteUrl": "https://qwen.ai", + "docsUrl": "https://qwen.ai/blog?id=qwen3.6-max-preview", + "vendor": "Alibaba", + "size": null, + "contextWindow": 256000, + "maxOutput": null, + "tokenPricing": { + "status": "available", + "primaryOffer": "sg-standard", + "offers": [ + { + "id": "sg-standard", + "currency": "USD", + "region": "SG", + "serviceTier": "standard", + "effectiveFrom": null, + "effectiveTo": null, + "tiers": [ + { + "condition": { "metric": "inputTokens", "min": 1, "max": 128000 }, + "rates": { + "input": 1.3, + "output": 7.8, + "cacheRead": null, + "cacheWrite": null + } + }, + { + "condition": { "metric": "inputTokens", "min": 128001, "max": 256000 }, + "rates": { + "input": 2, + "output": 12, + "cacheRead": null, + "cacheWrite": null + } + } + ] + } + ] + }, + "releaseDate": "2026-04-20", + "lifecycle": "maintained", + "knowledgeCutoff": null, + "inputModalities": ["text"], + "outputModalities": ["text"], + "capabilities": ["function-calling", "tool-choice", "structured-outputs", "reasoning"], + "benchmarks": { + "sweBench": null, + "terminalBench": null, + "mmmu": null, + "mmmuPro": null, + "webDevArena": null, + "sciCode": null, + "liveCodeBench": null + }, + "platformUrls": { + "huggingface": null, + "artificialAnalysis": "https://artificialanalysis.ai/models/qwen3-6-max/", + "openrouter": null + } +} diff --git a/manifests/models/qwen3-coder-flash.json b/manifests/models/qwen3-coder-flash.json deleted file mode 100644 index 34a02946..00000000 --- a/manifests/models/qwen3-coder-flash.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "$schema": "../$schemas/model.schema.json", - "id": "qwen3-coder-flash", - "name": "Qwen3 Coder Flash", - "description": "Low-latency Qwen3 Coder API model for code generation, repository assistance, and tool-calling workflows.", - "translations": { - "zh-Hans": { - "description": "Qwen3 Coder Flash 是 Alibaba 发布的独立模型版本,具备明确的编程或软件工程能力。" - }, - "de": { - "description": "Qwen3 Coder Flash ist eine eigenständige Modellversion von Alibaba mit klar ausgewiesenen Fähigkeiten für Programmierung oder Softwareentwicklung." - }, - "es": { - "description": "Qwen3 Coder Flash es una versión de modelo independiente de Alibaba con capacidades explícitas de programación o ingeniería de software." - }, - "fr": { - "description": "Qwen3 Coder Flash est une version de modèle distincte de Alibaba, dotée de capacités explicites en programmation ou en génie logiciel." - }, - "id": { - "description": "Qwen3 Coder Flash adalah versi model mandiri dari Alibaba dengan kemampuan pemrograman atau rekayasa perangkat lunak yang dinyatakan secara jelas." - }, - "ja": { - "description": "Qwen3 Coder Flash は Alibaba が公開した独立したモデル版で、プログラミングまたはソフトウェアエンジニアリング能力を明示しています。" - }, - "ko": { - "description": "Qwen3 Coder Flash은(는) Alibaba가 공개한 독립 모델 버전으로, 프로그래밍 또는 소프트웨어 엔지니어링 기능을 명시적으로 제공합니다." - }, - "pt": { - "description": "Qwen3 Coder Flash é uma versão de modelo independente da Alibaba, com capacidades explícitas de programação ou engenharia de software." - }, - "ru": { - "description": "Qwen3 Coder Flash — самостоятельная версия модели от Alibaba с явно заявленными возможностями программирования или разработки ПО." - }, - "tr": { - "description": "Qwen3 Coder Flash, Alibaba tarafından yayımlanan ve açıkça belirtilmiş programlama veya yazılım mühendisliği yeteneklerine sahip bağımsız bir model sürümüdür." - }, - "zh-Hant": { - "description": "Qwen3 Coder Flash 是 Alibaba 發布的獨立模型版本,具備明確的程式設計或軟體工程能力。" - } - }, - "verified": true, - "sources": [ - { - "url": "https://help.aliyun.com/en/model-studio/qwen-coder", - "title": "Qwen3 Coder Flash official documentation", - "fields": [ - "name", - "description", - "docsUrl", - "size", - "contextWindow", - "maxOutput", - "releaseDate", - "lifecycle", - "knowledgeCutoff", - "inputModalities", - "outputModalities", - "capabilities" - ] - }, - { - "url": "https://help.aliyun.com/en/model-studio/model-pricing", - "title": "Alibaba Cloud Model Studio model pricing", - "fields": ["tokenPricing"] - } - ], - "lastVerifiedAt": "2026-07-21", - "verifiedBy": "codex-agent", - "confidence": "high", - "websiteUrl": "https://www.alibabacloud.com", - "docsUrl": "https://help.aliyun.com/en/model-studio/qwen-coder", - "vendor": "Alibaba", - "size": null, - "contextWindow": 1000000, - "maxOutput": 65536, - "tokenPricing": { - "status": "available", - "primaryOffer": "cn-standard", - "offers": [ - { - "id": "cn-standard", - "currency": "CNY", - "region": "CN", - "serviceTier": "standard", - "effectiveFrom": null, - "effectiveTo": null, - "tiers": [ - { - "condition": { "metric": "inputTokens", "min": 1, "max": 32000 }, - "rates": { - "input": 1, - "output": 4, - "cacheRead": null, - "cacheWrite": null - } - }, - { - "condition": { "metric": "inputTokens", "min": 32001, "max": 128000 }, - "rates": { - "input": 1.5, - "output": 6, - "cacheRead": null, - "cacheWrite": null - } - }, - { - "condition": { "metric": "inputTokens", "min": 128001, "max": 256000 }, - "rates": { - "input": 2.5, - "output": 10, - "cacheRead": null, - "cacheWrite": null - } - }, - { - "condition": { "metric": "inputTokens", "min": 256001, "max": 1000000 }, - "rates": { - "input": 5, - "output": 25, - "cacheRead": null, - "cacheWrite": null - } - } - ] - } - ] - }, - "releaseDate": "2025-07-28", - "lifecycle": "maintained", - "knowledgeCutoff": null, - "inputModalities": ["text"], - "outputModalities": ["text"], - "capabilities": ["function-calling", "tool-choice", "structured-outputs"], - "benchmarks": { - "sweBench": null, - "terminalBench": null, - "mmmu": null, - "mmmuPro": null, - "webDevArena": null, - "sciCode": null, - "liveCodeBench": null - }, - "platformUrls": { - "huggingface": null, - "artificialAnalysis": null, - "openrouter": null - } -} diff --git a/manifests/models/qwen3-coder-plus.json b/manifests/models/qwen3-coder-plus.json deleted file mode 100644 index 0818f29e..00000000 --- a/manifests/models/qwen3-coder-plus.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "$schema": "../$schemas/model.schema.json", - "id": "qwen3-coder-plus", - "name": "Qwen3 Coder Plus", - "description": "Alibaba's proprietary Qwen3 Coder 480B. Powerful coding agent specializing in autonomous programming via tool calling and environment interaction.", - "translations": { - "zh-Hans": { - "description": "阿里巴巴专有的开源 Qwen3 Coder 480B A35B 版本。强大的编码代理模型,专长于通过工具调用和环境交互进行自主编程,结合了编码能力和通用的多功能能力。" - }, - "de": { - "description": "Alibabas proprietare Open-Source-Version Qwen3 Coder 480B A35B. Leistungsstarker Coding-Agent, spezialisiert auf autonomes Programmieren via Tool-Calling und Umgebungsinteraktion." - }, - "ko": { - "description": "Alibaba의 독점 오픈 소스 Qwen3 Coder 480B A35B 버전입니다. 도구 호출 및 환경 상호작용을 통한 자율 프로그래밍에 특화된 강력한 코딩 에이전트로, 코딩 능력과 일반적 다기능 능력을 결합했습니다." - }, - "es": { - "description": "Version de codigo abierto proprietaria de Alibaba Qwen3 Coder 480B A35B..." - }, - "fr": { - "description": "Version open source proprietaire d'Alibaba Qwen3 Coder 480B A35B..." - }, - "id": { - "description": "Versi open-source milik Alibaba Qwen3 Coder 480B A35B..." - }, - "ja": { - "description": "Alibabaの独自のオープンソースQwen3 Coder 480B A35Bバージョン。ツール呼び出しと環境の相互作用を通じた自律プログラミングに特化した強力なコーディングエージェントで、コーディング能力と一般的な多機能能力を組み合わせています。" - }, - "pt": { - "description": "Versao de codigo aberto proprietaria da Alibaba Qwen3 Coder 480B A35B..." - }, - "ru": { - "description": "Собственная версия с открытым исходным кодом от Alibaba Qwen3 Coder 480B A35B..." - }, - "tr": { - "description": "Qwen3 Coder 480B A35B'in Alibaba'nin ozel acik kaynak surumu..." - }, - "zh-Hant": { - "description": "阿里巴巴專有的開源 Qwen3 Coder 480B A35B 版本。強大的編碼代理模型,專長於通過工具調用和環境交互進行自主編程,結合了編碼能力和通用的多功能能力。" - } - }, - "verified": true, - "websiteUrl": "https://qwenlm.com", - "docsUrl": "https://huggingface.co/Qwen/Qwen3-Coder-480B-A35B", - "vendor": "Alibaba", - "size": "480B", - "contextWindow": 1048576, - "maxOutput": 65536, - "tokenPricing": { - "status": "available", - "primaryOffer": "global-standard", - "offers": [ - { - "id": "global-standard", - "currency": "USD", - "region": "global", - "serviceTier": "standard", - "effectiveFrom": null, - "effectiveTo": null, - "tiers": [ - { - "condition": null, - "rates": { - "input": 1, - "output": 5, - "cacheRead": 0.1, - "cacheWrite": null - } - } - ] - } - ] - }, - "releaseDate": "2025-07-23", - "lifecycle": "latest", - "knowledgeCutoff": "2025-07", - "inputModalities": ["text"], - "outputModalities": ["text"], - "capabilities": ["function-calling", "tool-choice", "structured-outputs"], - "benchmarks": { - "sweBench": null, - "terminalBench": null, - "mmmu": null, - "mmmuPro": null, - "webDevArena": null, - "sciCode": null, - "liveCodeBench": null - }, - "platformUrls": { - "huggingface": null, - "artificialAnalysis": null, - "openrouter": "https://openrouter.ai/qwen/qwen3-coder-plus" - } -} diff --git a/manifests/models/qwen3-max-2026-01-23.json b/manifests/models/qwen3-max-2026-01-23.json deleted file mode 100644 index ec1149db..00000000 --- a/manifests/models/qwen3-max-2026-01-23.json +++ /dev/null @@ -1,139 +0,0 @@ -{ - "$schema": "../$schemas/model.schema.json", - "id": "qwen3-max-2026-01-23", - "name": "Qwen3 Max 2026-01-23", - "description": "Pinned Qwen3 Max snapshot offered in Alibaba Cloud Coding Plan for demanding agentic coding tasks.", - "translations": { - "zh-Hans": { - "description": "Qwen3 Max 2026-01-23 是 Alibaba 发布的独立模型版本,具备明确的编程或软件工程能力。" - }, - "de": { - "description": "Qwen3 Max 2026-01-23 ist eine eigenständige Modellversion von Alibaba mit klar ausgewiesenen Fähigkeiten für Programmierung oder Softwareentwicklung." - }, - "es": { - "description": "Qwen3 Max 2026-01-23 es una versión de modelo independiente de Alibaba con capacidades explícitas de programación o ingeniería de software." - }, - "fr": { - "description": "Qwen3 Max 2026-01-23 est une version de modèle distincte de Alibaba, dotée de capacités explicites en programmation ou en génie logiciel." - }, - "id": { - "description": "Qwen3 Max 2026-01-23 adalah versi model mandiri dari Alibaba dengan kemampuan pemrograman atau rekayasa perangkat lunak yang dinyatakan secara jelas." - }, - "ja": { - "description": "Qwen3 Max 2026-01-23 は Alibaba が公開した独立したモデル版で、プログラミングまたはソフトウェアエンジニアリング能力を明示しています。" - }, - "ko": { - "description": "Qwen3 Max 2026-01-23은(는) Alibaba가 공개한 독립 모델 버전으로, 프로그래밍 또는 소프트웨어 엔지니어링 기능을 명시적으로 제공합니다." - }, - "pt": { - "description": "Qwen3 Max 2026-01-23 é uma versão de modelo independente da Alibaba, com capacidades explícitas de programação ou engenharia de software." - }, - "ru": { - "description": "Qwen3 Max 2026-01-23 — самостоятельная версия модели от Alibaba с явно заявленными возможностями программирования или разработки ПО." - }, - "tr": { - "description": "Qwen3 Max 2026-01-23, Alibaba tarafından yayımlanan ve açıkça belirtilmiş programlama veya yazılım mühendisliği yeteneklerine sahip bağımsız bir model sürümüdür." - }, - "zh-Hant": { - "description": "Qwen3 Max 2026-01-23 是 Alibaba 發布的獨立模型版本,具備明確的程式設計或軟體工程能力。" - } - }, - "verified": true, - "sources": [ - { - "url": "https://help.aliyun.com/en/model-studio/coding-plan", - "title": "Qwen3 Max 2026-01-23 official documentation", - "fields": [ - "name", - "description", - "docsUrl", - "size", - "contextWindow", - "maxOutput", - "releaseDate", - "lifecycle", - "knowledgeCutoff", - "inputModalities", - "outputModalities", - "capabilities" - ] - }, - { - "url": "https://help.aliyun.com/en/model-studio/model-pricing", - "title": "Alibaba Cloud Model Studio model pricing", - "fields": ["tokenPricing"] - } - ], - "lastVerifiedAt": "2026-07-21", - "verifiedBy": "codex-agent", - "confidence": "high", - "websiteUrl": "https://www.alibabacloud.com", - "docsUrl": "https://help.aliyun.com/en/model-studio/coding-plan", - "vendor": "Alibaba", - "size": null, - "contextWindow": 262144, - "maxOutput": 65536, - "tokenPricing": { - "status": "available", - "primaryOffer": "cn-standard", - "offers": [ - { - "id": "cn-standard", - "currency": "CNY", - "region": "CN", - "serviceTier": "standard", - "effectiveFrom": null, - "effectiveTo": null, - "tiers": [ - { - "condition": { "metric": "inputTokens", "min": 1, "max": 32000 }, - "rates": { - "input": 2.5, - "output": 10, - "cacheRead": null, - "cacheWrite": null - } - }, - { - "condition": { "metric": "inputTokens", "min": 32001, "max": 128000 }, - "rates": { - "input": 4, - "output": 16, - "cacheRead": null, - "cacheWrite": null - } - }, - { - "condition": { "metric": "inputTokens", "min": 128001, "max": 256000 }, - "rates": { - "input": 7, - "output": 28, - "cacheRead": null, - "cacheWrite": null - } - } - ] - } - ] - }, - "releaseDate": "2026-01-23", - "lifecycle": "maintained", - "knowledgeCutoff": null, - "inputModalities": ["text"], - "outputModalities": ["text"], - "capabilities": ["function-calling", "tool-choice", "structured-outputs", "reasoning"], - "benchmarks": { - "sweBench": null, - "terminalBench": null, - "mmmu": null, - "mmmuPro": null, - "webDevArena": null, - "sciCode": null, - "liveCodeBench": null - }, - "platformUrls": { - "huggingface": null, - "artificialAnalysis": null, - "openrouter": null - } -} diff --git a/manifests/providers/kwaikatonai.json b/manifests/providers/kwaikatonai.json deleted file mode 100644 index f9834dbb..00000000 --- a/manifests/providers/kwaikatonai.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "$schema": "../$schemas/provider.schema.json", - "id": "kwaikatonai", - "name": "KwaiKAT", - "description": "Kwai's AI research lab developing advanced coding models and AI assistants.", - "translations": { - "zh-Hans": { - "description": "快手的 AI 研究实验室,开发先进的编码模型和 AI 助手。" - }, - "de": { - "description": "Kwais KI-Forschungslabor für die Entwicklung fortschrittlicher Codierungsmodelle und KI-Assistenten." - }, - "ko": { - "description": "Kwai의 AI 연구소로 고급 코딩 모델과 AI 어시스턴트를 개발합니다." - }, - "es": { - "description": "Laboratorio de investigación de IA de Kwai que desarrolla modelos de codificación avanzados y asistentes de IA." - }, - "fr": { - "description": "Le laboratoire de recherche IA de Kwai développant des modèles de codage avancés et des assistants IA." - }, - "id": { - "description": "Laboratorium penelitian AI Kwai yang mengembangkan model coding canggih dan asisten AI." - }, - "ja": { - "description": "高度なコーディングモデルとAIアシスタントを開発するKwaiのAI研究ラボ。" - }, - "pt": { - "description": "Laboratorio de pesquisa de IA da Kwai desenvolvendo modelos de codificacao avancados e assistentes de IA." - }, - "ru": { - "description": "Исследовательская лаборатория ИИ Kwai, разрабатывающая передовые модели кодирования и ИИ-ассистенты." - }, - "tr": { - "description": "Kwai'nin ileri duzey kodlama modelleri ve yardimci sise gelistirilen AI arastirma laboratuvari." - }, - "zh-Hant": { - "description": "快手的 AI 研究實驗室,開發先進的編碼模型和 AI 助手。" - } - }, - "verified": false, - "websiteUrl": "https://kwaikatonai.com", - "docsUrl": "https://openrouter.ai/kwaipilot", - "vendor": "StreamLake", - "type": "foundation-model-provider", - "applyKeyUrl": null, - "platformUrls": { - "huggingface": null, - "artificialAnalysis": null, - "openrouter": "https://openrouter.ai/kwaipilot" - }, - "communityUrls": { - "linkedin": null, - "twitter": null, - "github": null, - "youtube": null, - "discord": null, - "reddit": null, - "blog": null - } -} diff --git a/manifests/vendors/alibaba.json b/manifests/vendors/alibaba.json index 9d377a1d..98992d19 100644 --- a/manifests/vendors/alibaba.json +++ b/manifests/vendors/alibaba.json @@ -2,6 +2,10 @@ "$schema": "../$schemas/vendor.schema.json", "id": "alibaba", "name": "Alibaba", + "themeColor": { + "light": "#D95F00", + "dark": "#FF8A3D" + }, "description": "Chinese multinational technology company specializing in e-commerce, retail, cloud computing, AI, and digital services through platforms like Alibaba.com, Taobao, and Alibaba Cloud.", "translations": { "zh-Hans": { diff --git a/manifests/vendors/anthropic.json b/manifests/vendors/anthropic.json index 0839fe19..63a6b32e 100644 --- a/manifests/vendors/anthropic.json +++ b/manifests/vendors/anthropic.json @@ -2,6 +2,10 @@ "$schema": "../$schemas/vendor.schema.json", "id": "anthropic", "name": "Anthropic", + "themeColor": { + "light": "#D97757", + "dark": "#E58A6B" + }, "description": "An AI safety company focused on building reliable, interpretable, and steerable AI systems.", "translations": { "zh-Hans": { diff --git a/manifests/vendors/deepseek.json b/manifests/vendors/deepseek.json index 7986a67d..4a6390ae 100644 --- a/manifests/vendors/deepseek.json +++ b/manifests/vendors/deepseek.json @@ -2,6 +2,10 @@ "$schema": "../$schemas/vendor.schema.json", "id": "deepseek", "name": "DeepSeek", + "themeColor": { + "light": "#4D6BFE", + "dark": "#4D6BFE" + }, "description": "A leading AI research company focused on developing advanced language models and AI technology for coding and general intelligence.", "translations": { "zh-Hans": { diff --git a/manifests/vendors/google.json b/manifests/vendors/google.json index 0cc08409..aba6d97f 100644 --- a/manifests/vendors/google.json +++ b/manifests/vendors/google.json @@ -2,6 +2,10 @@ "$schema": "../$schemas/vendor.schema.json", "id": "google", "name": "Google", + "themeColor": { + "light": "#4285F4", + "dark": "#4285F4" + }, "description": "A multinational technology company specializing in Internet-related services and products, including AI and machine learning.", "translations": { "zh-Hans": { diff --git a/manifests/vendors/meta.json b/manifests/vendors/meta.json index b0d81931..6312d3a5 100644 --- a/manifests/vendors/meta.json +++ b/manifests/vendors/meta.json @@ -2,6 +2,10 @@ "$schema": "../$schemas/vendor.schema.json", "id": "meta", "name": "Meta", + "themeColor": { + "light": "#0866FF", + "dark": "#0866FF" + }, "description": "Technology company building AI tools and open-source models like Llama, advancing research through open science to connect people and enable innovation worldwide.", "translations": { "zh-Hans": { diff --git a/manifests/vendors/minimax.json b/manifests/vendors/minimax.json index 28f99363..2fb7cbf4 100644 --- a/manifests/vendors/minimax.json +++ b/manifests/vendors/minimax.json @@ -2,6 +2,10 @@ "$schema": "../$schemas/vendor.schema.json", "id": "minimax", "name": "MiniMax", + "themeColor": { + "light": "#E84B8A", + "dark": "#E84B8A" + }, "description": "An AI company specializing in multimodal general large language models, offering advanced AI services including text, speech, music, image, and video generation.", "translations": { "zh-Hans": { diff --git a/manifests/vendors/mistral-ai.json b/manifests/vendors/mistral-ai.json index 5b7dbed1..79b032bb 100644 --- a/manifests/vendors/mistral-ai.json +++ b/manifests/vendors/mistral-ai.json @@ -3,6 +3,10 @@ "id": "mistral-ai", "name": "Mistral AI", "aliases": ["Mistral"], + "themeColor": { + "light": "#D95F00", + "dark": "#FF8A33" + }, "description": "European AI company developing open-weight and commercial frontier models, including Codestral and Devstral coding models, developer tools, and deployment infrastructure.", "translations": { "de": { diff --git a/manifests/vendors/moonshot.json b/manifests/vendors/moonshot.json index e98ba27f..3459efe9 100644 --- a/manifests/vendors/moonshot.json +++ b/manifests/vendors/moonshot.json @@ -3,6 +3,10 @@ "id": "moonshot", "name": "Moonshot AI", "aliases": ["Moonshot"], + "themeColor": { + "light": "#6E5AE6", + "dark": "#6E5AE6" + }, "description": "An AI company specializing in large language models and intelligent applications, known for the Kimi AI assistant.", "translations": { "zh-Hans": { diff --git a/manifests/vendors/openai.json b/manifests/vendors/openai.json index dc2a5e27..c0f239c9 100644 --- a/manifests/vendors/openai.json +++ b/manifests/vendors/openai.json @@ -2,6 +2,10 @@ "$schema": "../$schemas/vendor.schema.json", "id": "openai", "name": "OpenAI", + "themeColor": { + "light": "#10A37F", + "dark": "#10A37F" + }, "description": "A leading AI research company focused on developing safe and beneficial artificial general intelligence.", "translations": { "zh-Hans": { diff --git a/manifests/vendors/orionstar.json b/manifests/vendors/orionstar.json deleted file mode 100644 index 2ebd9344..00000000 --- a/manifests/vendors/orionstar.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "$schema": "../$schemas/vendor.schema.json", - "id": "orionstar", - "name": "OrionStar", - "description": "A leading global service robot and AI solutions company founded in 2016, dedicated to using artificial intelligence technology to create the next generation of revolutionary robots and AI tools.", - "translations": { - "zh-Hans": { - "description": "成立于2016年的全球领先服务机器人和人工智能解决方案公司,致力于利用人工智能技术创造下一代革命性机器人和AI工具。" - }, - "de": { - "description": "Ein führendes globales Unternehmen für Serviceroboter und AI-Lösungen, gegründet 2016, das sich der Entwicklung revolutionärer Roboter und AI-Tools der nächsten Generation widmet." - }, - "ko": { - "description": "2016년에 설립된 글로벌 선도 서비스 로봇 및 AI 솔루션 회사로, 차세대 혁신적인 로봇 및 AI 도구를 만들기 위해 인공지능 기술을 사용합니다." - }, - "es": { - "description": "Empresa global líder de robots de servicio y soluciones de IA fundada en 2016, dedicada a crear robots revolucionarios y herramientas IA de próxima generación utilizando tecnología de inteligencia ..." - }, - "fr": { - "description": "Société leader mondiale de robots de service et solutions IA fondée en 2016, dédiée à créer des robots révolutionnaires et outils IA de nouvelle génération en utilisant la technologie d'intelligenc..." - }, - "id": { - "description": "Perusahaan global terdepan robot layanan dan solusi AI yang didirikan pada 2016, berdedikasi menciptakan robot revolusioner dan alat AI generasi berikutnya menggunakan teknologi kecerdasan buatan." - }, - "ja": { - "description": "2016年設立の世界をリードするサービスロボットおよびAIソリューション企業。人工知能技術を活用して次世代の革新的ロボットやAIツールを作成することに専念しています。" - }, - "pt": { - "description": "Empresa global líder de robôs de serviço e soluções IA fundada em 2016, dedicada a criar robôs revolucionários e ferramentas IA de próxima geração utilizando tecnologia de inteligência artificial." - }, - "ru": { - "description": "Ведущая мировая компания сервисных роботов и ИИ-решений, основанная в 2016 году, посвященная созданию революционных роботов и ИИ-инструментов следующего поколения с использованием технологий искусс..." - }, - "tr": { - "description": "2016 yılında kurulan küresel lider hizmet robotları ve AI çözümleri şirketi, yapay zeka teknolojisini kullanarak bir sonraki nesil devrimci robotlar ve AI araçları yaratmaya adanmıştır." - }, - "zh-Hant": { - "description": "成立於2016年的全球領先服務機器人和人工智慧解決方案公司,致力於利用人工智慧技術創造下一代革命性機器人和AI工具。" - } - }, - "verified": false, - "websiteUrl": "https://en.orionstar.com", - "communityUrls": { - "linkedin": "https://www.linkedin.com/company/orionstar", - "twitter": null, - "github": "https://github.com/OrionStarAI", - "youtube": null, - "discord": null, - "reddit": null, - "blog": null - } -} diff --git a/manifests/vendors/streamlake.json b/manifests/vendors/streamlake.json deleted file mode 100644 index a7a99408..00000000 --- a/manifests/vendors/streamlake.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "$schema": "../$schemas/vendor.schema.json", - "id": "streamlake", - "name": "StreamLake", - "aliases": ["Kwai", "Kuaishou"], - "description": "Video cloud service brand of Kuaishou providing live streaming, video processing, and content delivery capabilities leveraging experience from short-video platform operations.", - "translations": { - "zh-Hans": { - "description": "快手旗下的视频云服务品牌,提供直播、视频处理和内容分发能力,利用短视频平台运营经验。" - }, - "de": { - "description": "Video-Cloud-Service-Marke von Kuaishou, die Live-Streaming, Videoverarbeitung und Content-Delivery-Funktionen bereitstellt." - }, - "ko": { - "description": "콰이선에서 분사된 비디오 클라우드 서비스 브랜드로, 숏쉽 비디오 플랫폼 운영 경험을 활용하여 라이브 스트리밍, 비디오 처리 및 콘텐츠 배포 기능을 제공합니다." - }, - "es": { - "description": "Marca de servicios en la nube de video de Kuaishou, que ofrece transmision en vivo, procesamiento de video y capacidades de entrega de contenido, aprovechando la experiencia de operaciones de plata..." - }, - "fr": { - "description": "Marque de services video en nuance de Kuaishou, offrant diffusion en direct, traitement video et capacites de livraison de contenu, utilisant l'experience d'exploitation de plateforme video court." - }, - "id": { - "description": "Merek layanan cloud video dari Kuaishou, menyediakan streaming langsung, pemrosesan video, dan kemampuan distribusi konten, memanfaatkan pengalaman operasi platform video pendek." - }, - "ja": { - "description": "快手傘下のビデオクラウドサービスブランドで、ショートビデオプラットフォームの運用経験を活かしてライブストリーミング、ビデオ処理、コンテンツ配信機能を提供します。" - }, - "pt": { - "description": "Marca de servicos em nuvem de video da Kuaishou, oferecendo transmissao ao vivo, processamento de video e capacidades de entrega de conteudo, aproveitando a experiencia de operacao de plataforma de..." - }, - "ru": { - "description": "Видеоклауд-сервисный бренд Kuaishou, предоставляющий потоковую передачу в реальном времени, обработку видео и возможности доставки контента, используя опыт работы на платформах короткого видео." - }, - "tr": { - "description": "Kuaishou'un video bulut hizmet markası, canli yayin, video isleme ve içerik dağıtım yetenekleri sunar, kısa video platformu operasyon deneyiminden yararlanır." - }, - "zh-Hant": { - "description": "快手旗下的視頻雲服務品牌,提供直播、視頻處理和內容分發能力,利用短視頻平台運營經驗。" - } - }, - "verified": false, - "websiteUrl": "https://www.streamlake.com", - "communityUrls": { - "linkedin": null, - "twitter": null, - "github": null, - "youtube": null, - "discord": null, - "reddit": null, - "blog": null - } -} diff --git a/manifests/vendors/xai.json b/manifests/vendors/xai.json index ad45dd52..137c77be 100644 --- a/manifests/vendors/xai.json +++ b/manifests/vendors/xai.json @@ -2,6 +2,10 @@ "$schema": "../$schemas/vendor.schema.json", "id": "xai", "name": "xAI", + "themeColor": { + "light": "#4A4A4A", + "dark": "#A3A3A3" + }, "description": "AI company advancing scientific discovery and understanding of the universe, creator of Grok AI models and the world's largest AI supercomputer, Colossus.", "translations": { "zh-Hans": { diff --git a/manifests/vendors/z-ai.json b/manifests/vendors/z-ai.json index 2460fb5f..9fe7c2f0 100644 --- a/manifests/vendors/z-ai.json +++ b/manifests/vendors/z-ai.json @@ -3,6 +3,10 @@ "id": "z-ai", "name": "Z.ai", "aliases": ["z-ai"], + "themeColor": { + "light": "#334155", + "dark": "#94A3B8" + }, "description": "An AI platform offering advanced language models and AI services for various applications including coding and content generation.", "translations": { "zh-Hans": { diff --git a/src/lib/generated/clis.ts b/src/lib/generated/clis.ts index 8eef62cb..07eab7b4 100644 --- a/src/lib/generated/clis.ts +++ b/src/lib/generated/clis.ts @@ -14,7 +14,6 @@ import CodebuddyCli from '../../../manifests/clis/codebuddy-cli.json' import CodexCli from '../../../manifests/clis/codex-cli.json' import ContinueCli from '../../../manifests/clis/continue-cli.json' import CursorCli from '../../../manifests/clis/cursor-cli.json' -import DeepvCode from '../../../manifests/clis/deepv-code.json' import DroidCli from '../../../manifests/clis/droid-cli.json' import GeminiCli from '../../../manifests/clis/gemini-cli.json' import GithubCopilotCli from '../../../manifests/clis/github-copilot-cli.json' @@ -45,7 +44,6 @@ export const clisData = [ CodexCli, ContinueCli, CursorCli, - DeepvCode, DroidCli, GeminiCli, GithubCopilotCli, diff --git a/src/lib/generated/ides.ts b/src/lib/generated/ides.ts index bfab2547..0a5ecba9 100644 --- a/src/lib/generated/ides.ts +++ b/src/lib/generated/ides.ts @@ -6,7 +6,6 @@ import Antigravity from '../../../manifests/ides/antigravity.json' import Codebuddy from '../../../manifests/ides/codebuddy.json' -import Codeflicker from '../../../manifests/ides/codeflicker.json' import Cursor from '../../../manifests/ides/cursor.json' import IntellijIdea from '../../../manifests/ides/intellij-idea.json' import Kiro from '../../../manifests/ides/kiro.json' @@ -19,7 +18,6 @@ import type { ManifestIDE } from '../../types/manifests' export const idesData = [ Antigravity, Codebuddy, - Codeflicker, Cursor, IntellijIdea, Kiro, diff --git a/src/lib/generated/metadata.ts b/src/lib/generated/metadata.ts index 3adbdd4f..6b23a5bf 100644 --- a/src/lib/generated/metadata.ts +++ b/src/lib/generated/metadata.ts @@ -2964,11 +2964,11 @@ export const faqMetadata: Record = { } export const stackCounts: Record = { - ides: 10, - clis: 28, + ides: 9, + clis: 27, desktops: 12, extensions: 19, - models: 127, - 'model-providers': 13, - vendors: 41, + models: 113, + 'model-providers': 12, + vendors: 39, } diff --git a/src/lib/generated/models.ts b/src/lib/generated/models.ts index f2259422..f29363e3 100644 --- a/src/lib/generated/models.ts +++ b/src/lib/generated/models.ts @@ -8,7 +8,6 @@ import ClaudeFable5 from '../../../manifests/models/claude-fable-5.json' import ClaudeHaiku3 from '../../../manifests/models/claude-haiku-3.json' import ClaudeHaiku35 from '../../../manifests/models/claude-haiku-3-5.json' import ClaudeHaiku45 from '../../../manifests/models/claude-haiku-4-5.json' -import ClaudeMythos5 from '../../../manifests/models/claude-mythos-5.json' import ClaudeOpus3 from '../../../manifests/models/claude-opus-3.json' import ClaudeOpus4 from '../../../manifests/models/claude-opus-4.json' import ClaudeOpus41 from '../../../manifests/models/claude-opus-4-1.json' @@ -24,14 +23,10 @@ import ClaudeSonnet4 from '../../../manifests/models/claude-sonnet-4.json' import ClaudeSonnet45 from '../../../manifests/models/claude-sonnet-4-5.json' import ClaudeSonnet46 from '../../../manifests/models/claude-sonnet-4-6.json' import ClaudeSonnet5 from '../../../manifests/models/claude-sonnet-5.json' -import Codestral2405 from '../../../manifests/models/codestral-2405.json' -import Codestral2501 from '../../../manifests/models/codestral-2501.json' -import Codestral2508 from '../../../manifests/models/codestral-2508.json' import Composer from '../../../manifests/models/composer.json' import CursorComposer2 from '../../../manifests/models/cursor-composer-2.json' import CursorComposer25 from '../../../manifests/models/cursor-composer-2-5.json' import Deepseek32 from '../../../manifests/models/deepseek-3-2.json' -import DeepseekCoderV20724 from '../../../manifests/models/deepseek-coder-v2-0724.json' import DeepseekR1 from '../../../manifests/models/deepseek-r1.json' import DeepseekR10528 from '../../../manifests/models/deepseek-r1-0528.json' import DeepseekV3 from '../../../manifests/models/deepseek-v3.json' @@ -41,16 +36,11 @@ import DeepseekV3Terminus from '../../../manifests/models/deepseek-v3-terminus.j import DeepseekV4Flash from '../../../manifests/models/deepseek-v4-flash.json' import DeepseekV4Pro from '../../../manifests/models/deepseek-v4-pro.json' import Devstral2 from '../../../manifests/models/devstral-2.json' -import DevstralMedium10 from '../../../manifests/models/devstral-medium-1-0.json' -import DevstralSmall10 from '../../../manifests/models/devstral-small-1-0.json' -import DevstralSmall11 from '../../../manifests/models/devstral-small-1-1.json' import DevstralSmall2 from '../../../manifests/models/devstral-small-2.json' import Gemini20Flash from '../../../manifests/models/gemini-2-0-flash.json' -import Gemini20FlashLite from '../../../manifests/models/gemini-2-0-flash-lite.json' import Gemini25Flash from '../../../manifests/models/gemini-2-5-flash.json' import Gemini25FlashLite from '../../../manifests/models/gemini-2-5-flash-lite.json' import Gemini25Pro from '../../../manifests/models/gemini-2-5-pro.json' -import Gemini31FlashLite from '../../../manifests/models/gemini-3-1-flash-lite.json' import Gemini31ProPreview from '../../../manifests/models/gemini-3-1-pro-preview.json' import Gemini35Flash from '../../../manifests/models/gemini-3-5-flash.json' import Gemini35FlashLite from '../../../manifests/models/gemini-3-5-flash-lite.json' @@ -58,12 +48,17 @@ import Gemini36Flash from '../../../manifests/models/gemini-3-6-flash.json' import Gemini3Flash from '../../../manifests/models/gemini-3-flash.json' import Gemini3Pro from '../../../manifests/models/gemini-3-pro.json' import Glm45 from '../../../manifests/models/glm-4-5.json' +import Glm45Air from '../../../manifests/models/glm-4-5-air.json' +import Glm45v from '../../../manifests/models/glm-4-5v.json' import Glm46 from '../../../manifests/models/glm-4-6.json' import Glm46v from '../../../manifests/models/glm-4-6v.json' import Glm47 from '../../../manifests/models/glm-4-7.json' +import Glm47Flash from '../../../manifests/models/glm-4-7-flash.json' import Glm5 from '../../../manifests/models/glm-5.json' import Glm51 from '../../../manifests/models/glm-5-1.json' import Glm52 from '../../../manifests/models/glm-5-2.json' +import Glm5Turbo from '../../../manifests/models/glm-5-turbo.json' +import Glm5vTurbo from '../../../manifests/models/glm-5v-turbo.json' import Gpt41 from '../../../manifests/models/gpt-4-1.json' import Gpt41Mini from '../../../manifests/models/gpt-4-1-mini.json' import Gpt41Nano from '../../../manifests/models/gpt-4-1-nano.json' @@ -72,35 +67,27 @@ import Gpt4oMini from '../../../manifests/models/gpt-4o-mini.json' import Gpt5 from '../../../manifests/models/gpt-5.json' import Gpt51 from '../../../manifests/models/gpt-5-1.json' import Gpt51Codex from '../../../manifests/models/gpt-5-1-codex.json' -import Gpt51CodexMax from '../../../manifests/models/gpt-5-1-codex-max.json' import Gpt51CodexMini from '../../../manifests/models/gpt-5-1-codex-mini.json' import Gpt52 from '../../../manifests/models/gpt-5-2.json' import Gpt52Codex from '../../../manifests/models/gpt-5-2-codex.json' -import Gpt52Pro from '../../../manifests/models/gpt-5-2-pro.json' import Gpt53Codex from '../../../manifests/models/gpt-5-3-codex.json' import Gpt54 from '../../../manifests/models/gpt-5-4.json' import Gpt54Mini from '../../../manifests/models/gpt-5-4-mini.json' import Gpt54Nano from '../../../manifests/models/gpt-5-4-nano.json' -import Gpt54Pro from '../../../manifests/models/gpt-5-4-pro.json' import Gpt55 from '../../../manifests/models/gpt-5-5.json' -import Gpt55Pro from '../../../manifests/models/gpt-5-5-pro.json' import Gpt56Luna from '../../../manifests/models/gpt-5-6-luna.json' import Gpt56Sol from '../../../manifests/models/gpt-5-6-sol.json' import Gpt56Terra from '../../../manifests/models/gpt-5-6-terra.json' import Gpt5Codex from '../../../manifests/models/gpt-5-codex.json' import Gpt5Mini from '../../../manifests/models/gpt-5-mini.json' import Gpt5Nano from '../../../manifests/models/gpt-5-nano.json' -import Gpt5Pro from '../../../manifests/models/gpt-5-pro.json' import Grok4 from '../../../manifests/models/grok-4.json' import Grok41Fast from '../../../manifests/models/grok-4-1-fast.json' import Grok43 from '../../../manifests/models/grok-4-3.json' import Grok45 from '../../../manifests/models/grok-4-5.json' import Grok420 from '../../../manifests/models/grok-4-20.json' import Grok4Fast from '../../../manifests/models/grok-4-fast.json' -import GrokBuild01 from '../../../manifests/models/grok-build-0-1.json' import GrokCodeFast1 from '../../../manifests/models/grok-code-fast-1.json' -import KatCoderProV1 from '../../../manifests/models/kat-coder-pro-v1.json' -import KimiDev72b from '../../../manifests/models/kimi-dev-72b.json' import KimiK25 from '../../../manifests/models/kimi-k2-5.json' import KimiK26 from '../../../manifests/models/kimi-k2-6.json' import KimiK27Code from '../../../manifests/models/kimi-k2-7-code.json' @@ -121,16 +108,15 @@ import MuseSpark11 from '../../../manifests/models/muse-spark-1-1.json' import O3 from '../../../manifests/models/o3.json' import O3Mini from '../../../manifests/models/o3-mini.json' import O4Mini from '../../../manifests/models/o4-mini.json' -import Qwen35Plus from '../../../manifests/models/qwen3-5-plus.json' +import Qwen3627b from '../../../manifests/models/qwen3-6-27b.json' +import Qwen3635bA3b from '../../../manifests/models/qwen3-6-35b-a3b.json' +import Qwen36MaxPreview from '../../../manifests/models/qwen3-6-max-preview.json' import Qwen36Plus from '../../../manifests/models/qwen3-6-plus.json' import Qwen37Max from '../../../manifests/models/qwen3-7-max.json' import Qwen37Plus from '../../../manifests/models/qwen3-7-plus.json' import Qwen3Coder30bA3b from '../../../manifests/models/qwen3-coder-30b-a3b.json' import Qwen3Coder480bA35b from '../../../manifests/models/qwen3-coder-480b-a35b.json' -import Qwen3CoderFlash from '../../../manifests/models/qwen3-coder-flash.json' import Qwen3CoderNext from '../../../manifests/models/qwen3-coder-next.json' -import Qwen3CoderPlus from '../../../manifests/models/qwen3-coder-plus.json' -import Qwen3Max20260123 from '../../../manifests/models/qwen3-max-2026-01-23.json' import type { ManifestModel } from '../../types/manifests' export const modelsData = [ @@ -138,7 +124,6 @@ export const modelsData = [ ClaudeHaiku35, ClaudeHaiku3, ClaudeHaiku45, - ClaudeMythos5, ClaudeOpus3, ClaudeOpus41, ClaudeOpus45, @@ -154,14 +139,10 @@ export const modelsData = [ ClaudeSonnet46, ClaudeSonnet4, ClaudeSonnet5, - Codestral2405, - Codestral2501, - Codestral2508, Composer, CursorComposer25, CursorComposer2, Deepseek32, - DeepseekCoderV20724, DeepseekR10528, DeepseekR1, DeepseekV31, @@ -171,47 +152,43 @@ export const modelsData = [ DeepseekV4Flash, DeepseekV4Pro, Devstral2, - DevstralMedium10, - DevstralSmall10, - DevstralSmall11, DevstralSmall2, - Gemini20FlashLite, Gemini20Flash, Gemini25FlashLite, Gemini25Flash, Gemini25Pro, - Gemini31FlashLite, Gemini31ProPreview, Gemini35FlashLite, Gemini35Flash, Gemini36Flash, Gemini3Flash, Gemini3Pro, + Glm45Air, Glm45, + Glm45v, Glm46, Glm46v, + Glm47Flash, Glm47, Glm51, Glm52, + Glm5Turbo, Glm5, + Glm5vTurbo, Gpt41Mini, Gpt41Nano, Gpt41, Gpt4oMini, Gpt4o, - Gpt51CodexMax, Gpt51CodexMini, Gpt51Codex, Gpt51, Gpt52Codex, - Gpt52Pro, Gpt52, Gpt53Codex, Gpt54Mini, Gpt54Nano, - Gpt54Pro, Gpt54, - Gpt55Pro, Gpt55, Gpt56Luna, Gpt56Sol, @@ -219,7 +196,6 @@ export const modelsData = [ Gpt5Codex, Gpt5Mini, Gpt5Nano, - Gpt5Pro, Gpt5, Grok41Fast, Grok43, @@ -227,10 +203,7 @@ export const modelsData = [ Grok420, Grok4Fast, Grok4, - GrokBuild01, GrokCodeFast1, - KatCoderProV1, - KimiDev72b, KimiK25, KimiK26, KimiK27Code, @@ -251,16 +224,15 @@ export const modelsData = [ O3Mini, O3, O4Mini, - Qwen35Plus, + Qwen3627b, + Qwen3635bA3b, + Qwen36MaxPreview, Qwen36Plus, Qwen37Max, Qwen37Plus, Qwen3Coder30bA3b, Qwen3Coder480bA35b, - Qwen3CoderFlash, Qwen3CoderNext, - Qwen3CoderPlus, - Qwen3Max20260123, ] as unknown as ManifestModel[] export type Model = typeof ClaudeFable5 diff --git a/src/lib/generated/providers.ts b/src/lib/generated/providers.ts index 94bd61fd..56ac08e8 100644 --- a/src/lib/generated/providers.ts +++ b/src/lib/generated/providers.ts @@ -8,7 +8,6 @@ import Alibaba from '../../../manifests/providers/alibaba.json' import Anthropic from '../../../manifests/providers/anthropic.json' import Deepseek from '../../../manifests/providers/deepseek.json' import Google from '../../../manifests/providers/google.json' -import Kwaikatonai from '../../../manifests/providers/kwaikatonai.json' import Meta from '../../../manifests/providers/meta.json' import Minimax from '../../../manifests/providers/minimax.json' import Moonshot from '../../../manifests/providers/moonshot.json' @@ -24,7 +23,6 @@ export const providersData = [ Anthropic, Deepseek, Google, - Kwaikatonai, Meta, Minimax, Moonshot, diff --git a/src/lib/generated/vendors.ts b/src/lib/generated/vendors.ts index 833763bd..46d09683 100644 --- a/src/lib/generated/vendors.ts +++ b/src/lib/generated/vendors.ts @@ -31,14 +31,12 @@ import Moonshot from '../../../manifests/vendors/moonshot.json' import OhMyPi from '../../../manifests/vendors/oh-my-pi.json' import Openai from '../../../manifests/vendors/openai.json' import Openrouter from '../../../manifests/vendors/openrouter.json' -import Orionstar from '../../../manifests/vendors/orionstar.json' import RooCode from '../../../manifests/vendors/roo-code.json' import ShareaiLab from '../../../manifests/vendors/shareai-lab.json' import Siliconflow from '../../../manifests/vendors/siliconflow.json' import Sourcegraph from '../../../manifests/vendors/sourcegraph.json' import Sst from '../../../manifests/vendors/sst.json' import Stagewise from '../../../manifests/vendors/stagewise.json' -import Streamlake from '../../../manifests/vendors/streamlake.json' import Tabnine from '../../../manifests/vendors/tabnine.json' import Tencent from '../../../manifests/vendors/tencent.json' import VerdentAi from '../../../manifests/vendors/verdent-ai.json' @@ -75,14 +73,12 @@ export const vendorsData = [ OhMyPi, Openai, Openrouter, - Orionstar, RooCode, ShareaiLab, Siliconflow, Sourcegraph, Sst, Stagewise, - Streamlake, Tabnine, Tencent, VerdentAi, diff --git a/src/lib/model-intelligence-index.ts b/src/lib/model-intelligence-index.ts new file mode 100644 index 00000000..dfa48bb5 --- /dev/null +++ b/src/lib/model-intelligence-index.ts @@ -0,0 +1,232 @@ +import { modelsData } from '@/lib/generated/models' +import { vendorsData } from '@/lib/generated/vendors' +import { findVendorByName } from '@/lib/vendor-identity' +import artificialAnalysisData from '../../data/artificial-analysis-index.json' + +const FALLBACK_COLOR: ModelIntelligenceThemeColor = { + light: '#6b7280', + dark: '#9ca3af', +} + +export const modelIntelligenceHiddenVendors = ['Mistral AI'] as const +export const modelIntelligenceLegacyMissingModelIds = artificialAnalysisData.legacyMissingModelIds + +export interface ModelIntelligenceThemeColor { + light: string + dark: string +} + +export type ModelIntelligenceMarker = + | 'circle' + | 'square' + | 'triangle' + | 'diamond' + | 'cross' + | 'star' + | 'wye' + +export interface ModelIntelligencePoint { + modelId: string + name: string + vendor: string + series: string + score: number + estimated: boolean + configuration: string + releaseDate: string + timestamp: number + color: ModelIntelligenceThemeColor +} + +export interface ModelIntelligenceSeries { + id: string + vendor: string + name: string + color: ModelIntelligenceThemeColor + dash: string | null + marker: ModelIntelligenceMarker + points: ModelIntelligencePoint[] +} + +export function createTimelineTicks([start, end]: [number, number], tickCount = 7): number[] { + if (!Number.isFinite(start) || !Number.isFinite(end) || tickCount < 1) return [] + if (start === end || tickCount === 1) return [start] + + const count = Math.max(2, Math.floor(tickCount)) + const ticks = Array.from({ length: count }, (_, index) => + index === count - 1 ? end : Math.round(start + ((end - start) * index) / (count - 1)) + ) + + return ticks.filter((tick, index) => index === 0 || tick !== ticks[index - 1]) +} + +function getOpenAISeries(id: string): string { + if (id.startsWith('o')) return 'o-series' + if (id.includes('codex')) return 'GPT Codex' + if (id.startsWith('gpt-5-6-sol')) return 'GPT Sol' + if (id.startsWith('gpt-5-6-terra')) return 'GPT Terra' + if (id.startsWith('gpt-5-6-luna')) return 'GPT Luna' + if (id.includes('mini')) return 'GPT mini' + if (id.includes('nano')) return 'GPT nano' + if (id.startsWith('gpt-4')) return 'GPT-4' + return 'GPT' +} + +function getSeries(id: string, vendor: string): string { + if (vendor === 'Anthropic') { + if (id.includes('opus')) return 'Claude Opus' + if (id.includes('sonnet')) return 'Claude Sonnet' + if (id.includes('haiku')) return 'Claude Haiku' + if (id.includes('fable')) return 'Claude Fable' + return 'Claude' + } + + if (vendor === 'OpenAI') return getOpenAISeries(id) + + if (vendor === 'Google') { + if (id.includes('flash-lite')) return 'Gemini Flash-Lite' + if (id.includes('flash')) return 'Gemini Flash' + if (id.includes('pro')) return 'Gemini Pro' + return 'Gemini' + } + + if (vendor === 'DeepSeek') { + if (id.includes('-r')) return 'DeepSeek R' + if (id.includes('coder')) return 'DeepSeek Coder' + if (id.includes('flash')) return 'DeepSeek Flash' + if (id.includes('pro')) return 'DeepSeek Pro' + return 'DeepSeek V' + } + + if (vendor === 'Mistral AI') { + if (id.startsWith('devstral')) return 'Devstral' + if (id.startsWith('codestral')) return 'Codestral' + if (id.includes('medium')) return 'Mistral Medium' + if (id.includes('small')) return 'Mistral Small' + return 'Mistral' + } + + if (vendor === 'xAI') { + if (id.includes('code')) return 'Grok Code' + if (id.includes('fast')) return 'Grok Fast' + return 'Grok' + } + + if (vendor === 'Alibaba') { + if (id.includes('coder')) return 'Qwen Coder' + if (id.includes('max')) return 'Qwen Max' + if (id.includes('plus')) return 'Qwen Plus' + return 'Qwen' + } + + if (vendor === 'Moonshot') { + if (id.includes('code')) return 'Kimi Code' + return 'Kimi' + } + + if (vendor === 'Meta') { + if (id.startsWith('llama')) return 'Llama' + if (id.startsWith('muse')) return 'Muse' + } + + if (vendor === 'Z.ai') { + if (/^glm-\d+(?:-\d+)?v(?:-|$)/.test(id)) return 'GLM Vision' + if (id.includes('flash')) return 'GLM Flash' + if (id.includes('air')) return 'GLM Air' + if (id.includes('turbo')) return 'GLM Turbo' + return 'GLM' + } + + if (vendor === 'MiniMax') return 'MiniMax M' + return vendor +} + +const modelById = new Map(modelsData.map(model => [model.id, model])) + +export const allModelIntelligencePoints: ModelIntelligencePoint[] = + artificialAnalysisData.entries.map(entry => { + const model = modelById.get(entry.modelId) + + if (!model?.releaseDate) { + throw new Error(`Artificial Analysis entry has no matching dated model: ${entry.modelId}`) + } + + return { + ...entry, + name: model.name, + vendor: model.vendor, + series: getSeries(model.id, model.vendor), + releaseDate: model.releaseDate, + timestamp: Date.parse(`${model.releaseDate}T00:00:00Z`), + color: findVendorByName(vendorsData, model.vendor)?.themeColor ?? FALLBACK_COLOR, + } + }) + +const hiddenVendorSet = new Set(modelIntelligenceHiddenVendors) + +export const modelIntelligencePoints = allModelIntelligencePoints.filter( + point => !hiddenVendorSet.has(point.vendor) +) + +const groupedSeries = new Map() + +for (const point of modelIntelligencePoints) { + const id = `${point.vendor}:${point.series}` + const existing = groupedSeries.get(id) + + if (existing) { + existing.points.push(point) + } else { + groupedSeries.set(id, { + id, + vendor: point.vendor, + name: point.series, + color: point.color, + dash: null, + marker: 'circle', + points: [point], + }) + } +} + +const sortedSeries = Array.from(groupedSeries.values()) + .map(series => ({ + ...series, + points: series.points.sort((a, b) => a.timestamp - b.timestamp || a.score - b.score), + })) + .sort( + (a, b) => + a.vendor.localeCompare(b.vendor) || + a.name.localeCompare(b.name, 'en', { numeric: true, sensitivity: 'base' }) + ) + +const seriesIndexByVendor = new Map() +const DASH_PATTERNS = [null, '6 4', '2 4', '10 4 2 4'] +const MARKERS: ModelIntelligenceMarker[] = [ + 'circle', + 'square', + 'triangle', + 'diamond', + 'cross', + 'star', + 'wye', +] + +export const modelIntelligenceSeries = sortedSeries.map(series => { + const seriesIndex = seriesIndexByVendor.get(series.vendor) ?? 0 + seriesIndexByVendor.set(series.vendor, seriesIndex + 1) + + return { + ...series, + dash: DASH_PATTERNS[seriesIndex % DASH_PATTERNS.length] ?? null, + marker: MARKERS[seriesIndex % MARKERS.length] ?? 'circle', + } +}) + +export const modelIntelligenceMeta = { + source: artificialAnalysisData.source, + sourceUrl: artificialAnalysisData.sourceUrl, + methodologyUrl: artificialAnalysisData.methodologyUrl, + indexVersion: artificialAnalysisData.indexVersion, + observedAt: artificialAnalysisData.observedAt, +} diff --git a/src/types/manifests.ts b/src/types/manifests.ts index 16a0870f..a5eb8010 100644 --- a/src/types/manifests.ts +++ b/src/types/manifests.ts @@ -331,6 +331,10 @@ export interface ManifestProvider extends ManifestVendorEntity { */ export interface ManifestVendor extends ManifestEntity { aliases?: string[] + themeColor?: { + light: string + dark: string + } communityUrls: ManifestCommunityUrls } diff --git a/tests/model-intelligence-index.test.ts b/tests/model-intelligence-index.test.ts new file mode 100644 index 00000000..98e41ca9 --- /dev/null +++ b/tests/model-intelligence-index.test.ts @@ -0,0 +1,195 @@ +import { describe, expect, it } from 'vitest' +import { modelsData } from '@/lib/generated/models' +import { vendorsData } from '@/lib/generated/vendors' +import { + allModelIntelligencePoints, + createTimelineTicks, + modelIntelligenceHiddenVendors, + modelIntelligenceLegacyMissingModelIds, + modelIntelligenceMeta, + modelIntelligencePoints, + modelIntelligenceSeries, +} from '@/lib/model-intelligence-index' +import { findVendorByName } from '@/lib/vendor-identity' +import artificialAnalysisData from '../data/artificial-analysis-index.json' + +const LEGACY_MISSING_MODEL_ID_BASELINE = new Set([ + 'composer', + 'cursor-composer-2', + 'cursor-composer-2-5', +]) + +function getRelativeLuminance(hex: string): number { + const channels = hex + .slice(1) + .match(/.{2}/g)! + .map(channel => Number.parseInt(channel, 16) / 255) + .map(channel => (channel <= 0.04045 ? channel / 12.92 : ((channel + 0.055) / 1.055) ** 2.4)) + + return 0.2126 * channels[0]! + 0.7152 * channels[1]! + 0.0722 * channels[2]! +} + +function getContrastRatio(first: string, second: string): number { + const firstLuminance = getRelativeLuminance(first) + const secondLuminance = getRelativeLuminance(second) + + return ( + (Math.max(firstLuminance, secondLuminance) + 0.05) / + (Math.min(firstLuminance, secondLuminance) + 0.05) + ) +} + +describe('model intelligence index', () => { + it('creates stable unique timeline ticks for the chart axis', () => { + const domain: [number, number] = [Date.UTC(2024, 0, 1), Date.UTC(2026, 0, 1)] + const ticks = createTimelineTicks(domain) + + expect(ticks).toHaveLength(7) + expect(new Set(ticks).size).toBe(ticks.length) + expect(ticks[0]).toBe(domain[0]) + expect(ticks.at(-1)).toBe(domain[1]) + }) + + it('maps every score to one dated catalog model', () => { + expect(allModelIntelligencePoints).toHaveLength(artificialAnalysisData.entries.length) + expect(new Set(allModelIntelligencePoints.map(point => point.modelId)).size).toBe( + allModelIntelligencePoints.length + ) + + for (const point of allModelIntelligencePoints) { + expect(point.releaseDate).toMatch(/^\d{4}-\d{2}-\d{2}$/) + expect(Number.isFinite(point.timestamp)).toBe(true) + expect(point.score).toBeGreaterThanOrEqual(0) + expect(point.score).toBeLessThanOrEqual(100) + expect(point.series.length).toBeGreaterThan(0) + } + }) + + it('requires every new catalog model to have an Intelligence Index entry', () => { + const indexedModelIds = new Set(allModelIntelligencePoints.map(point => point.modelId)) + const missingModelIds = modelsData + .filter(model => !indexedModelIds.has(model.id)) + .map(model => model.id) + .sort() + const legacyMissingModelIds = [...modelIntelligenceLegacyMissingModelIds].sort() + const unexpectedLegacyMissingModelIds = legacyMissingModelIds.filter( + modelId => !LEGACY_MISSING_MODEL_ID_BASELINE.has(modelId) + ) + + expect(new Set(legacyMissingModelIds).size).toBe(legacyMissingModelIds.length) + expect(unexpectedLegacyMissingModelIds).toEqual([]) + expect(missingModelIds).toEqual(legacyMissingModelIds) + }) + + it('keeps hidden vendors in source data but excludes them from the page', () => { + for (const vendor of modelIntelligenceHiddenVendors) { + expect(allModelIntelligencePoints.some(point => point.vendor === vendor)).toBe(true) + expect(modelIntelligencePoints.some(point => point.vendor === vendor)).toBe(false) + expect(modelIntelligenceSeries.some(series => series.vendor === vendor)).toBe(false) + } + }) + + it('keeps a single vendor color while separating model series', () => { + const vendorColors = new Map>() + const vendorStyles = new Map>() + const vendors = new Set(allModelIntelligencePoints.map(point => point.vendor)) + + for (const series of modelIntelligenceSeries) { + const colors = vendorColors.get(series.vendor) ?? new Set() + colors.add(`${series.color.light}:${series.color.dark}`) + vendorColors.set(series.vendor, colors) + + const styles = vendorStyles.get(series.vendor) ?? new Set() + styles.add(`${series.dash ?? 'solid'}:${series.marker}`) + vendorStyles.set(series.vendor, styles) + } + + for (const colors of vendorColors.values()) { + expect(colors.size).toBe(1) + } + + for (const [vendor, styles] of vendorStyles) { + expect(styles.size).toBe( + modelIntelligenceSeries.filter(series => series.vendor === vendor).length + ) + + const singletonSeries = modelIntelligenceSeries.filter( + series => series.vendor === vendor && series.points.length === 1 + ) + expect(new Set(singletonSeries.map(series => series.marker)).size).toBe( + singletonSeries.length + ) + } + + expect( + [...vendors].filter(vendor => !findVendorByName(vendorsData, vendor)?.themeColor) + ).toEqual([]) + expect(modelIntelligenceSeries.filter(series => series.vendor === 'Anthropic').length).toBe(4) + expect( + modelIntelligenceSeries.filter(series => series.vendor === 'OpenAI').length + ).toBeGreaterThan(3) + }) + + it('keeps vendor colors visible on their target theme', () => { + const vendors = new Set(allModelIntelligencePoints.map(point => point.vendor)) + + for (const vendor of vendors) { + const themeColor = findVendorByName(vendorsData, vendor)?.themeColor + + expect(themeColor).toBeDefined() + expect(getContrastRatio(themeColor!.light, '#FFFFFF')).toBeGreaterThanOrEqual(3) + expect(getContrastRatio(themeColor!.dark, '#0A0A0A')).toBeGreaterThanOrEqual(3) + } + }) + + it('keeps historical family releases as distinct points', () => { + const haikuPoints = allModelIntelligencePoints + .filter(point => point.series === 'Claude Haiku') + .map(point => [point.modelId, point.score, point.estimated]) + + expect(haikuPoints).toEqual([ + ['claude-haiku-3', 4, true], + ['claude-haiku-3-5', 12, false], + ['claude-haiku-4-5', 24, true], + ]) + + expect( + allModelIntelligencePoints + .filter(point => point.modelId.startsWith('deepseek-r1')) + .map(point => [point.modelId, point.score]) + ).toEqual([ + ['deepseek-r1', 19], + ['deepseek-r1-0528', 20], + ]) + + expect( + allModelIntelligencePoints + .filter(point => point.vendor === 'Z.ai') + .map(point => [point.modelId, point.series, point.score]) + ).toEqual([ + ['glm-4-5', 'GLM', 19], + ['glm-4-5-air', 'GLM Air', 17], + ['glm-4-5v', 'GLM Vision', 7], + ['glm-4-6', 'GLM', 23], + ['glm-4-6v', 'GLM Vision', 11], + ['glm-4-7', 'GLM', 34], + ['glm-4-7-flash', 'GLM Flash', 23], + ['glm-5', 'GLM', 40], + ['glm-5-turbo', 'GLM Turbo', 38], + ['glm-5v-turbo', 'GLM Vision', 34], + ['glm-5-1', 'GLM', 40], + ['glm-5-2', 'GLM', 51], + ]) + }) + + it('records the source and index version', () => { + expect(modelIntelligenceMeta.sourceUrl).toBe( + 'https://artificialanalysis.ai/leaderboards/models' + ) + expect(modelIntelligenceMeta.methodologyUrl).toBe( + 'https://artificialanalysis.ai/methodology/intelligence-benchmarking' + ) + expect(modelIntelligenceMeta.indexVersion).toBe('4.1') + expect(modelIntelligenceMeta.observedAt).toMatch(/^\d{4}-\d{2}-\d{2}$/) + }) +}) From deb4b734ea0492b9ef254c26ae7c4b4b03e1c49e Mon Sep 17 00:00:00 2001 From: Pan YANG Date: Sun, 26 Jul 2026 20:12:37 +0800 Subject: [PATCH 5/7] feat(models): add intelligence index timeline --- .../opengraph-image.tsx | 24 + .../model-intelligence-index/page.client.tsx | 740 ++++++++++++++++++ .../model-intelligence-index/page.tsx | 57 ++ src/app/api/revalidate/route.ts | 3 +- src/app/sitemap.ts | 1 + src/components/ThemeProvider.tsx | 2 +- src/components/navigation/RankingMegaMenu.tsx | 13 + src/lib/metadata/i18n-validation.ts | 7 +- src/lib/metadata/registry.ts | 10 +- tests/validate/i18n-usage.test.ts | 17 +- translations/de/components/common.json | 2 + translations/de/index.ts | 2 + .../de/pages/model-intelligence-index.json | 31 + translations/en/components/common.json | 2 + translations/en/index.ts | 2 + .../en/pages/model-intelligence-index.json | 31 + translations/es/components/common.json | 2 + translations/es/index.ts | 2 + .../es/pages/model-intelligence-index.json | 31 + translations/fr/components/common.json | 2 + translations/fr/index.ts | 2 + .../fr/pages/model-intelligence-index.json | 31 + translations/id/components/common.json | 2 + translations/id/index.ts | 2 + .../id/pages/model-intelligence-index.json | 31 + translations/ja/components/common.json | 2 + translations/ja/index.ts | 2 + .../ja/pages/model-intelligence-index.json | 31 + translations/ko/components/common.json | 2 + translations/ko/index.ts | 2 + .../ko/pages/model-intelligence-index.json | 31 + translations/pt/components/common.json | 2 + translations/pt/index.ts | 2 + .../pt/pages/model-intelligence-index.json | 31 + translations/ru/components/common.json | 2 + translations/ru/index.ts | 2 + .../ru/pages/model-intelligence-index.json | 31 + translations/tr/components/common.json | 2 + translations/tr/index.ts | 2 + .../tr/pages/model-intelligence-index.json | 31 + translations/zh-Hans/components/common.json | 2 + translations/zh-Hans/index.ts | 2 + .../pages/model-intelligence-index.json | 31 + translations/zh-Hant/components/common.json | 2 + translations/zh-Hant/index.ts | 2 + .../pages/model-intelligence-index.json | 31 + 46 files changed, 1275 insertions(+), 19 deletions(-) create mode 100644 src/app/[locale]/model-intelligence-index/opengraph-image.tsx create mode 100644 src/app/[locale]/model-intelligence-index/page.client.tsx create mode 100644 src/app/[locale]/model-intelligence-index/page.tsx create mode 100644 translations/de/pages/model-intelligence-index.json create mode 100644 translations/en/pages/model-intelligence-index.json create mode 100644 translations/es/pages/model-intelligence-index.json create mode 100644 translations/fr/pages/model-intelligence-index.json create mode 100644 translations/id/pages/model-intelligence-index.json create mode 100644 translations/ja/pages/model-intelligence-index.json create mode 100644 translations/ko/pages/model-intelligence-index.json create mode 100644 translations/pt/pages/model-intelligence-index.json create mode 100644 translations/ru/pages/model-intelligence-index.json create mode 100644 translations/tr/pages/model-intelligence-index.json create mode 100644 translations/zh-Hans/pages/model-intelligence-index.json create mode 100644 translations/zh-Hant/pages/model-intelligence-index.json diff --git a/src/app/[locale]/model-intelligence-index/opengraph-image.tsx b/src/app/[locale]/model-intelligence-index/opengraph-image.tsx new file mode 100644 index 00000000..3b9e1608 --- /dev/null +++ b/src/app/[locale]/model-intelligence-index/opengraph-image.tsx @@ -0,0 +1,24 @@ +import { ImageResponse } from 'next/og' +import { getTranslations } from 'next-intl/server' +import { OGImageTemplate } from '@/components/og/OGImageTemplate' + +export const size = { width: 1200, height: 630 } +export const contentType = 'image/png' + +interface Props { + params: Promise<{ locale: string }> +} + +export default async function Image({ params }: Props) { + const { locale } = await params + const tPage = await getTranslations({ locale, namespace: 'pages.modelIntelligenceIndex' }) + + return new ImageResponse( + , + { ...size } + ) +} diff --git a/src/app/[locale]/model-intelligence-index/page.client.tsx b/src/app/[locale]/model-intelligence-index/page.client.tsx new file mode 100644 index 00000000..05430bd9 --- /dev/null +++ b/src/app/[locale]/model-intelligence-index/page.client.tsx @@ -0,0 +1,740 @@ +'use client' + +import { ArrowDown, ArrowUp, ArrowUpDown } from 'lucide-react' +import { useTranslations } from 'next-intl' +import { useEffect, useMemo, useRef, useState } from 'react' +import type { LabelProps } from 'recharts' +import { + CartesianGrid, + LabelList, + ResponsiveContainer, + Scatter, + ScatterChart, + Symbols, + Tooltip, + XAxis, + YAxis, +} from 'recharts' +import { useTheme } from '@/components/ThemeProvider' +import { Link } from '@/i18n/navigation' +import type { + ModelIntelligenceMarker, + ModelIntelligencePoint, + ModelIntelligenceSeries, +} from '@/lib/model-intelligence-index' +import { createTimelineTicks } from '@/lib/model-intelligence-index' + +interface ModelIntelligenceIndexPageProps { + locale: string + meta: { + source: string + sourceUrl: string + methodologyUrl: string + indexVersion: string + observedAt: string + } + points: ModelIntelligencePoint[] + series: ModelIntelligenceSeries[] +} + +const DAY_IN_MS = 24 * 60 * 60 * 1000 + +type SortField = 'releaseDate' | 'index' +type SortDirection = 'asc' | 'desc' + +interface ModelLabelPlacement { + dx: number + dy: number + textAnchor: 'start' | 'middle' | 'end' +} + +interface LabelBox { + left: number + right: number + top: number + bottom: number +} + +const MIN_CHART_WIDTH = 920 +const CHART_HORIZONTAL_INSET = 66 +const LABEL_LAYOUT_HEIGHT = 404 +const LABEL_HEIGHT = 13 +const LABEL_GAP = 14 + +const DEFAULT_MODEL_LABEL_PLACEMENT: ModelLabelPlacement = { + dx: 0, + dy: -10, + textAnchor: 'middle', +} + +const MODEL_LABEL_CANDIDATES: ModelLabelPlacement[] = [ + DEFAULT_MODEL_LABEL_PLACEMENT, + { dx: 0, dy: 18, textAnchor: 'middle' }, + { dx: 9, dy: 4, textAnchor: 'start' }, + { dx: -9, dy: 4, textAnchor: 'end' }, + { dx: 8, dy: -10, textAnchor: 'start' }, + { dx: -8, dy: -10, textAnchor: 'end' }, + { dx: 8, dy: 18, textAnchor: 'start' }, + { dx: -8, dy: 18, textAnchor: 'end' }, + ...[24, 38, 52, 66, 80, 94, 108, 122, 136, 150, 164, 178, 192].flatMap(verticalOffset => + [0, 18, 36, 54, 72, 108, 144].flatMap(horizontalOffset => { + if (horizontalOffset === 0) { + return [ + { dx: 0, dy: -verticalOffset, textAnchor: 'middle' as const }, + { dx: 0, dy: verticalOffset, textAnchor: 'middle' as const }, + ] + } + + return [ + { dx: horizontalOffset, dy: -verticalOffset, textAnchor: 'start' as const }, + { dx: -horizontalOffset, dy: -verticalOffset, textAnchor: 'end' as const }, + { dx: horizontalOffset, dy: verticalOffset, textAnchor: 'start' as const }, + { dx: -horizontalOffset, dy: verticalOffset, textAnchor: 'end' as const }, + ] + }) + ), +] + +function estimateLabelWidth(label: string): number { + const width = Array.from(label).reduce( + (total, character) => total + (character.codePointAt(0)! > 0xff ? 10 : 6.5), + 0 + ) + + return Math.min(Math.max(width, 24), 180) +} + +function getLabelBox( + pointX: number, + pointY: number, + width: number, + placement: ModelLabelPlacement +): LabelBox { + const labelX = pointX + placement.dx + const labelY = pointY + placement.dy + const left = + placement.textAnchor === 'middle' + ? labelX - width / 2 + : placement.textAnchor === 'end' + ? labelX - width + : labelX + + return { + left, + right: left + width, + top: labelY - 10, + bottom: labelY + 3, + } +} + +function getOverlapArea(first: LabelBox, second: LabelBox): number { + const overlapWidth = + Math.min(first.right, second.right) - Math.max(first.left, second.left) + LABEL_GAP + const overlapHeight = + Math.min(first.bottom, second.bottom) - Math.max(first.top, second.top) + LABEL_GAP + + return overlapWidth > 0 && overlapHeight > 0 ? overlapWidth * overlapHeight : 0 +} + +function getOverflowArea(box: LabelBox, layoutWidth: number): number { + const horizontalOverflow = Math.max(0, -box.left) + Math.max(0, box.right - layoutWidth) + const verticalOverflow = Math.max(0, -box.top) + Math.max(0, box.bottom - LABEL_LAYOUT_HEIGHT) + + return horizontalOverflow * LABEL_HEIGHT + verticalOverflow * Math.max(1, box.right - box.left) +} + +function createModelLabelPlacements( + points: ModelIntelligencePoint[], + xDomain: [number, number], + yMax: number, + layoutWidth: number +): Map { + const [xMin, xMax] = xDomain + const xRange = Math.max(1, xMax - xMin) + const scoreRange = Math.max(1, yMax) + const occupiedBoxes: LabelBox[] = points.map(point => { + const x = ((point.timestamp - xMin) / xRange) * layoutWidth + const y = (1 - point.score / scoreRange) * LABEL_LAYOUT_HEIGHT + + return { left: x - 5, right: x + 5, top: y - 5, bottom: y + 5 } + }) + const placements = new Map() + const orderedPoints = [...points].sort( + (first, second) => + second.score - first.score || + first.timestamp - second.timestamp || + first.name.localeCompare(second.name, 'en', { numeric: true, sensitivity: 'base' }) + ) + + for (const point of orderedPoints) { + const pointX = ((point.timestamp - xMin) / xRange) * layoutWidth + const pointY = (1 - point.score / scoreRange) * LABEL_LAYOUT_HEIGHT + const labelWidth = estimateLabelWidth(point.name) + let bestCandidate = DEFAULT_MODEL_LABEL_PLACEMENT + let bestBox = getLabelBox(pointX, pointY, labelWidth, bestCandidate) + let bestPenalty = Number.POSITIVE_INFINITY + + for (const candidate of MODEL_LABEL_CANDIDATES) { + const box = getLabelBox(pointX, pointY, labelWidth, candidate) + const overlapPenalty = occupiedBoxes.reduce( + (total, occupiedBox) => total + getOverlapArea(box, occupiedBox), + 0 + ) + const distancePenalty = Math.hypot(candidate.dx, candidate.dy) * 0.02 + const penalty = overlapPenalty + getOverflowArea(box, layoutWidth) * 10 + distancePenalty + + if (penalty < bestPenalty) { + bestCandidate = candidate + bestBox = box + bestPenalty = penalty + } + + if (penalty < 1) break + } + + placements.set(point.modelId, bestCandidate) + occupiedBoxes.push(bestBox) + } + + return placements +} + +function formatDate(value: string | number, locale: string, includeDay = false): string { + const date = typeof value === 'number' ? new Date(value) : new Date(`${value}T00:00:00Z`) + + return new Intl.DateTimeFormat(locale, { + year: 'numeric', + month: 'short', + day: includeDay ? 'numeric' : undefined, + timeZone: 'UTC', + }).format(date) +} + +function ModelPointLabel({ + value, + viewBox, + placement, +}: LabelProps & { placement: ModelLabelPlacement }) { + if (!viewBox || !('x' in viewBox) || !('y' in viewBox)) return + + const pointX = viewBox.x + ('width' in viewBox ? (viewBox.width ?? 0) / 2 : 0) + const pointY = viewBox.y + ('height' in viewBox ? (viewBox.height ?? 0) / 2 : 0) + const x = pointX + placement.dx + const y = pointY + placement.dy + const showLeader = Math.abs(placement.dy) > 20 || Math.abs(placement.dx) > 12 + + return ( + + {showLeader && ( + + )} + + {String(value)} + + + ) +} + +function SeriesMarker({ marker, color }: { marker: ModelIntelligenceMarker; color: string }) { + return +} + +export function ModelIntelligenceIndexPage({ + locale, + meta, + points, + series, +}: ModelIntelligenceIndexPageProps) { + const tPage = useTranslations('pages.modelIntelligenceIndex') + const tShared = useTranslations('shared') + const { theme } = useTheme() + const [selectedVendors, setSelectedVendors] = useState([]) + const chartContainerRef = useRef(null) + const [labelLayoutWidth, setLabelLayoutWidth] = useState(MIN_CHART_WIDTH - CHART_HORIZONTAL_INSET) + const [sort, setSort] = useState<{ field: SortField; direction: SortDirection }>({ + field: 'index', + direction: 'desc', + }) + + const maxScore = useMemo(() => Math.max(...points.map(point => point.score)), [points]) + const yMax = Math.ceil((maxScore + 4) / 5) * 5 + const { xDomain, xTicks } = useMemo(() => { + const timestamps = points.map(point => point.timestamp) + const domain: [number, number] = [ + Math.min(...timestamps) - 14 * DAY_IN_MS, + Math.max(...timestamps) + 14 * DAY_IN_MS, + ] + + return { + xDomain: domain, + xTicks: createTimelineTicks(domain), + } + }, [points]) + + const selectedVendorSet = useMemo(() => new Set(selectedVendors), [selectedVendors]) + const showAllVendors = selectedVendors.length === 0 + const visibleSeries = useMemo( + () => (showAllVendors ? series : series.filter(item => selectedVendorSet.has(item.vendor))), + [selectedVendorSet, series, showAllVendors] + ) + const visiblePoints = useMemo( + () => (showAllVendors ? points : points.filter(point => selectedVendorSet.has(point.vendor))), + [points, selectedVendorSet, showAllVendors] + ) + const labelPlacements = useMemo( + () => + showAllVendors + ? new Map() + : createModelLabelPlacements(visiblePoints, xDomain, yMax, labelLayoutWidth), + [visiblePoints, xDomain, yMax, labelLayoutWidth, showAllVendors] + ) + + useEffect(() => { + const container = chartContainerRef.current + if (!container) return + + const updateLayoutWidth = () => { + setLabelLayoutWidth(Math.max(MIN_CHART_WIDTH, container.clientWidth) - CHART_HORIZONTAL_INSET) + } + const observer = new ResizeObserver(updateLayoutWidth) + + updateLayoutWidth() + observer.observe(container) + + return () => observer.disconnect() + }, []) + + const rankedPoints = useMemo(() => { + const direction = sort.direction === 'asc' ? 1 : -1 + + return [...visiblePoints].sort((a, b) => { + const primaryDifference = + sort.field === 'index' ? a.score - b.score : a.timestamp - b.timestamp + + if (primaryDifference !== 0) return primaryDifference * direction + + const secondaryDifference = + sort.field === 'index' ? b.timestamp - a.timestamp : b.score - a.score + + return ( + secondaryDifference || + a.name.localeCompare(b.name, locale, { numeric: true, sensitivity: 'base' }) + ) + }) + }, [locale, sort, visiblePoints]) + + const seriesByVendor = useMemo(() => { + const grouped = new Map() + + for (const item of series) { + const vendorSeries = grouped.get(item.vendor) ?? [] + vendorSeries.push(item) + grouped.set(item.vendor, vendorSeries) + } + + return Array.from(grouped.entries()) + }, [series]) + + function toggleVendor(vendor: string) { + setSelectedVendors(current => + current.includes(vendor) + ? current.filter(selectedVendor => selectedVendor !== vendor) + : [...current, vendor] + ) + } + + function toggleSort(field: SortField) { + setSort(current => + current.field === field + ? { + field, + direction: current.direction === 'desc' ? 'asc' : 'desc', + } + : { + field, + direction: 'desc', + } + ) + } + + function renderSortIcon(field: SortField) { + if (sort.field !== field) { + return
+ + +
+ {tComponent('header.modelIntelligenceIndex')} +
+
+ {tComponent('header.modelIntelligenceIndexDesc')} +
+
diff --git a/src/lib/metadata/i18n-validation.ts b/src/lib/metadata/i18n-validation.ts index 753a8d58..9bfa5507 100644 --- a/src/lib/metadata/i18n-validation.ts +++ b/src/lib/metadata/i18n-validation.ts @@ -52,7 +52,7 @@ export interface PageTranslationRequirement { * Registry of all pages and their translation requirements */ export const PAGE_TRANSLATION_REQUIREMENTS: Record = { - // ========== Static Pages with meta object (7个) ========== + // ========== Static Pages with meta object (8个) ========== '/': { namespace: 'pages.home', requiredKeys: REQUIRED_TRANSLATION_KEYS.staticWithMeta, @@ -83,6 +83,11 @@ export const PAGE_TRANSLATION_REQUIREMENTS: Record = { - // ========== Static Pages (11) ========== + // ========== Static Pages (12) ========== '/': { generatorType: 'static', pageType: 'home', @@ -75,6 +75,10 @@ export const PAGE_REGISTRY: Record = { generatorType: 'static', pageType: 'static', }, + '/model-intelligence-index': { + generatorType: 'static', + pageType: 'static', + }, '/curated-collections': { generatorType: 'static', pageType: 'static', @@ -209,8 +213,8 @@ export const PAGE_REGISTRY: Record = { }, } -// 总计: 29 个页面 -// - 静态页面: 11 个(包括首页、manifesto、docs、articles、search 等) +// 总计: 30 个页面 +// - 静态页面: 12 个(包括首页、manifesto、docs、articles、search 等) // - 列表页面: 6 个 // - 详情页面: 8 个 // - 比较页面: 4 个 diff --git a/tests/validate/i18n-usage.test.ts b/tests/validate/i18n-usage.test.ts index daec6d6c..8062a791 100644 --- a/tests/validate/i18n-usage.test.ts +++ b/tests/validate/i18n-usage.test.ts @@ -142,17 +142,6 @@ function loadTranslations(): TranslationIndex { byKey: new Map(), } - // Mapping from kebab-case file names to camelCase namespace names - // This matches the exports in translations/en/index.ts - const fileNameToNamespace: Record = { - 'curated-collections': 'curatedCollections', - 'model-compare': 'modelCompare', - 'model-detail': 'modelDetail', - 'model-providers': 'modelProviders', - 'open-source-rank': 'openSourceRank', - 'stacks-overview': 'stacksOverview', - } - // Load English translations as reference const enDir = path.join(TRANSLATIONS_DIR, 'en') @@ -176,8 +165,10 @@ function loadTranslations(): TranslationIndex { // Namespace is derived from file path // For pages: convert kebab-case file names to camelCase to match index.ts exports let namespaceWithoutExt = entry.name.replace('.json', '') - if (baseNamespace === 'pages' && fileNameToNamespace[namespaceWithoutExt]) { - namespaceWithoutExt = fileNameToNamespace[namespaceWithoutExt]! + if (baseNamespace === 'pages') { + namespaceWithoutExt = namespaceWithoutExt.replace(/-([a-z])/g, (_match, letter) => + letter.toUpperCase() + ) } const namespace = baseNamespace diff --git a/translations/de/components/common.json b/translations/de/components/common.json index 4bad9d7b..d75be86a 100644 --- a/translations/de/components/common.json +++ b/translations/de/components/common.json @@ -14,6 +14,8 @@ "openMenu": "Menü öffnen", "openSourceRank": "Open Source Ranking", "openSourceRankDesc": "Erkunden Sie Open-Source-AI-Coding-Projekte nach GitHub-Sternen", + "modelIntelligenceIndex": "Modellintelligenz-Index", + "modelIntelligenceIndexDesc": "Intelligenzwerte von Modellen über Veröffentlichungen hinweg verfolgen", "ranking": "Ranking", "toggleMenu": "Menü umschalten" } diff --git a/translations/de/index.ts b/translations/de/index.ts index b9b247d1..287be454 100644 --- a/translations/de/index.ts +++ b/translations/de/index.ts @@ -25,6 +25,7 @@ import landscape from './pages/landscape.json' import manifesto from './pages/manifesto.json' import modelCompare from './pages/model-compare.json' import modelDetail from './pages/model-detail.json' +import modelIntelligenceIndex from './pages/model-intelligence-index.json' import modelProviders from './pages/model-providers.json' import models from './pages/models.json' import openSourceRank from './pages/open-source-rank.json' @@ -52,6 +53,7 @@ export default { extensions, models, modelDetail, + modelIntelligenceIndex, modelCompare, modelProviders, vendors, diff --git a/translations/de/pages/model-intelligence-index.json b/translations/de/pages/model-intelligence-index.json new file mode 100644 index 00000000..594c2fa3 --- /dev/null +++ b/translations/de/pages/model-intelligence-index.json @@ -0,0 +1,31 @@ +{ + "meta": { + "title": "Modellintelligenz-Index", + "description": "Verfolgen Sie die Intelligenzwerte von Coding-Modellen im Zeitverlauf, gruppiert nach Anbieter und Modellreihe.", + "keywords": "Modellintelligenz-Index, Zeitleiste für KI-Modelle, Benchmarks für Coding-Modelle, Veröffentlichungshistorie" + }, + "title": "Modellintelligenz-Index", + "description": "Entdecken Sie, wie sich die Intelligenz von Coding-Modellen über ihre Veröffentlichungen hinweg verändert.", + "releaseDate": "Veröffentlichungsdatum", + "chart": { + "title": "Leistungsfähigkeit im Zeitverlauf", + "axisHint": "Veröffentlichungsdatum × Index", + "modelCount": "{count} Modelle im Katalog", + "indexAxis": "Intelligence Index" + }, + "filter": { + "label": "Nach Anbieter filtern", + "showAll": "Alle anzeigen" + }, + "list": { + "title": "Modellindex", + "description": "Sortieren Sie Modelle nach Veröffentlichungsdatum oder Indexwert. Die Balkenlängen verwenden dieselbe Skala.", + "index": "Index", + "barLabel": "{model} Index: {score}" + }, + "source": { + "attribution": "Artificial Analysis Intelligence Index v{version}, abgerufen am {date}. Quelle:", + "estimated": "* kennzeichnet von Artificial Analysis ausgewiesene Schätzwerte. Die Werte gelten für die angegebene Modellkonfiguration.", + "methodology": "Methodik" + } +} diff --git a/translations/en/components/common.json b/translations/en/components/common.json index cfd36031..00f3edb9 100644 --- a/translations/en/components/common.json +++ b/translations/en/components/common.json @@ -14,6 +14,8 @@ "openMenu": "Open menu", "openSourceRank": "Open Source Ranking", "openSourceRankDesc": "Explore open source AI coding projects by GitHub stars", + "modelIntelligenceIndex": "Model Intelligence Index", + "modelIntelligenceIndexDesc": "Track model intelligence scores across releases", "ranking": "Ranking", "toggleMenu": "Toggle menu" } diff --git a/translations/en/index.ts b/translations/en/index.ts index a9634605..bbade15a 100644 --- a/translations/en/index.ts +++ b/translations/en/index.ts @@ -25,6 +25,7 @@ import landscape from './pages/landscape.json' import manifesto from './pages/manifesto.json' import modelCompare from './pages/model-compare.json' import modelDetail from './pages/model-detail.json' +import modelIntelligenceIndex from './pages/model-intelligence-index.json' import modelProviders from './pages/model-providers.json' import models from './pages/models.json' import openSourceRank from './pages/open-source-rank.json' @@ -52,6 +53,7 @@ export default { extensions, models, modelDetail, + modelIntelligenceIndex, modelCompare, modelProviders, vendors, diff --git a/translations/en/pages/model-intelligence-index.json b/translations/en/pages/model-intelligence-index.json new file mode 100644 index 00000000..81f585fe --- /dev/null +++ b/translations/en/pages/model-intelligence-index.json @@ -0,0 +1,31 @@ +{ + "meta": { + "title": "Model Intelligence Index", + "description": "Track coding model intelligence scores over time, grouped by vendor and model series.", + "keywords": "model intelligence index, AI model timeline, coding model benchmarks, model release history" + }, + "title": "Model Intelligence Index", + "description": "Explore how coding model intelligence changes across release dates.", + "releaseDate": "Release date", + "chart": { + "title": "Capability over time", + "axisHint": "Release date × Index", + "modelCount": "{count} catalog models", + "indexAxis": "Intelligence Index" + }, + "filter": { + "label": "Filter by vendor", + "showAll": "Show all" + }, + "list": { + "title": "Model index", + "description": "Sort models by release date or Index score. Bar lengths use the same scale.", + "index": "Index", + "barLabel": "{model} Index: {score}" + }, + "source": { + "attribution": "Artificial Analysis Intelligence Index v{version}, observed {date}. Source:", + "estimated": "* marks estimates shown by Artificial Analysis. Scores reflect the listed model configuration.", + "methodology": "Methodology" + } +} diff --git a/translations/es/components/common.json b/translations/es/components/common.json index f2cffd60..2827d795 100644 --- a/translations/es/components/common.json +++ b/translations/es/components/common.json @@ -14,6 +14,8 @@ "openMenu": "Abrir menú", "openSourceRank": "Clasificación de Código Abierto", "openSourceRankDesc": "Explora proyectos de código abierto de codificación con IA por estrellas de GitHub", + "modelIntelligenceIndex": "Índice de inteligencia de modelos", + "modelIntelligenceIndexDesc": "Sigue la inteligencia de los modelos entre lanzamientos", "ranking": "Clasificación", "toggleMenu": "Alternar menú" } diff --git a/translations/es/index.ts b/translations/es/index.ts index 3832f015..56764ce4 100644 --- a/translations/es/index.ts +++ b/translations/es/index.ts @@ -25,6 +25,7 @@ import landscape from './pages/landscape.json' import manifesto from './pages/manifesto.json' import modelCompare from './pages/model-compare.json' import modelDetail from './pages/model-detail.json' +import modelIntelligenceIndex from './pages/model-intelligence-index.json' import modelProviders from './pages/model-providers.json' import models from './pages/models.json' import openSourceRank from './pages/open-source-rank.json' @@ -52,6 +53,7 @@ export default { extensions, models, modelDetail, + modelIntelligenceIndex, modelCompare, modelProviders, vendors, diff --git a/translations/es/pages/model-intelligence-index.json b/translations/es/pages/model-intelligence-index.json new file mode 100644 index 00000000..36d91065 --- /dev/null +++ b/translations/es/pages/model-intelligence-index.json @@ -0,0 +1,31 @@ +{ + "meta": { + "title": "Índice de inteligencia de modelos", + "description": "Sigue las puntuaciones de inteligencia de los modelos de programación a lo largo del tiempo, agrupadas por proveedor y serie.", + "keywords": "índice de inteligencia de modelos, cronología de modelos de IA, benchmarks de modelos de programación, historial de lanzamientos" + }, + "title": "Índice de inteligencia de modelos", + "description": "Explora cómo cambia la inteligencia de los modelos de programación entre lanzamientos.", + "releaseDate": "Fecha de lanzamiento", + "chart": { + "title": "Capacidad a lo largo del tiempo", + "axisHint": "Fecha de lanzamiento × Index", + "modelCount": "{count} modelos del catálogo", + "indexAxis": "Intelligence Index" + }, + "filter": { + "label": "Filtrar por proveedor", + "showAll": "Mostrar todos" + }, + "list": { + "title": "Índice de modelos", + "description": "Ordena los modelos por fecha de lanzamiento o puntuación del Index. Las barras utilizan la misma escala.", + "index": "Índice", + "barLabel": "Índice de {model}: {score}" + }, + "source": { + "attribution": "Artificial Analysis Intelligence Index v{version}, consultado el {date}. Fuente:", + "estimated": "* indica estimaciones mostradas por Artificial Analysis. Las puntuaciones corresponden a la configuración indicada.", + "methodology": "Metodología" + } +} diff --git a/translations/fr/components/common.json b/translations/fr/components/common.json index 5b27b58c..31ae563e 100644 --- a/translations/fr/components/common.json +++ b/translations/fr/components/common.json @@ -14,6 +14,8 @@ "openMenu": "Ouvrir le menu", "openSourceRank": "Classement Open Source", "openSourceRankDesc": "Explorez les projets de codage IA open source par étoiles GitHub", + "modelIntelligenceIndex": "Indice d’intelligence des modèles", + "modelIntelligenceIndexDesc": "Suivez l’intelligence des modèles au fil des sorties", "ranking": "Classement", "toggleMenu": "Basculer le menu" } diff --git a/translations/fr/index.ts b/translations/fr/index.ts index bb9d0637..1f3352a6 100644 --- a/translations/fr/index.ts +++ b/translations/fr/index.ts @@ -25,6 +25,7 @@ import landscape from './pages/landscape.json' import manifesto from './pages/manifesto.json' import modelCompare from './pages/model-compare.json' import modelDetail from './pages/model-detail.json' +import modelIntelligenceIndex from './pages/model-intelligence-index.json' import modelProviders from './pages/model-providers.json' import models from './pages/models.json' import openSourceRank from './pages/open-source-rank.json' @@ -52,6 +53,7 @@ export default { extensions, models, modelDetail, + modelIntelligenceIndex, modelCompare, modelProviders, vendors, diff --git a/translations/fr/pages/model-intelligence-index.json b/translations/fr/pages/model-intelligence-index.json new file mode 100644 index 00000000..6442e03f --- /dev/null +++ b/translations/fr/pages/model-intelligence-index.json @@ -0,0 +1,31 @@ +{ + "meta": { + "title": "Indice d’intelligence des modèles", + "description": "Suivez dans le temps les scores d’intelligence des modèles de code, regroupés par fournisseur et série.", + "keywords": "indice d’intelligence des modèles, chronologie des modèles IA, benchmarks des modèles de code, historique des sorties" + }, + "title": "Indice d’intelligence des modèles", + "description": "Découvrez l’évolution de l’intelligence des modèles de code au fil des sorties.", + "releaseDate": "Date de sortie", + "chart": { + "title": "Capacités au fil du temps", + "axisHint": "Date de sortie × Index", + "modelCount": "{count} modèles du catalogue", + "indexAxis": "Intelligence Index" + }, + "filter": { + "label": "Filtrer par fournisseur", + "showAll": "Tout afficher" + }, + "list": { + "title": "Indice des modèles", + "description": "Triez les modèles par date de sortie ou score Index. Les barres utilisent la même échelle.", + "index": "Indice", + "barLabel": "Indice de {model} : {score}" + }, + "source": { + "attribution": "Artificial Analysis Intelligence Index v{version}, relevé le {date}. Source :", + "estimated": "* signale les estimations affichées par Artificial Analysis. Les scores correspondent à la configuration indiquée.", + "methodology": "Méthodologie" + } +} diff --git a/translations/id/components/common.json b/translations/id/components/common.json index 55a6d494..8b834eb3 100644 --- a/translations/id/components/common.json +++ b/translations/id/components/common.json @@ -14,6 +14,8 @@ "openMenu": "Buka menu", "openSourceRank": "Peringkat Open Source", "openSourceRankDesc": "Jelajahi proyek coding AI open source berdasarkan bintang GitHub", + "modelIntelligenceIndex": "Indeks Kecerdasan Model", + "modelIntelligenceIndexDesc": "Lacak kecerdasan model di setiap rilis", "ranking": "Peringkat", "toggleMenu": "Toggle menu" } diff --git a/translations/id/index.ts b/translations/id/index.ts index e8542900..8d7ba1e0 100644 --- a/translations/id/index.ts +++ b/translations/id/index.ts @@ -25,6 +25,7 @@ import landscape from './pages/landscape.json' import manifesto from './pages/manifesto.json' import modelCompare from './pages/model-compare.json' import modelDetail from './pages/model-detail.json' +import modelIntelligenceIndex from './pages/model-intelligence-index.json' import modelProviders from './pages/model-providers.json' import models from './pages/models.json' import openSourceRank from './pages/open-source-rank.json' @@ -52,6 +53,7 @@ export default { extensions, models, modelDetail, + modelIntelligenceIndex, modelCompare, modelProviders, vendors, diff --git a/translations/id/pages/model-intelligence-index.json b/translations/id/pages/model-intelligence-index.json new file mode 100644 index 00000000..beb4dffd --- /dev/null +++ b/translations/id/pages/model-intelligence-index.json @@ -0,0 +1,31 @@ +{ + "meta": { + "title": "Indeks Kecerdasan Model", + "description": "Lacak skor kecerdasan model coding dari waktu ke waktu, dikelompokkan berdasarkan vendor dan seri model.", + "keywords": "indeks kecerdasan model, linimasa model AI, benchmark model coding, riwayat rilis model" + }, + "title": "Indeks Kecerdasan Model", + "description": "Jelajahi perubahan kecerdasan model coding di setiap tanggal rilis.", + "releaseDate": "Tanggal rilis", + "chart": { + "title": "Kapabilitas dari waktu ke waktu", + "axisHint": "Tanggal rilis × Index", + "modelCount": "{count} model katalog", + "indexAxis": "Intelligence Index" + }, + "filter": { + "label": "Filter berdasarkan vendor", + "showAll": "Tampilkan semua" + }, + "list": { + "title": "Indeks model", + "description": "Urutkan model berdasarkan tanggal rilis atau skor Index. Panjang bar menggunakan skala yang sama.", + "index": "Indeks", + "barLabel": "Indeks {model}: {score}" + }, + "source": { + "attribution": "Artificial Analysis Intelligence Index v{version}, diamati {date}. Sumber:", + "estimated": "* menandai estimasi yang ditampilkan Artificial Analysis. Skor mengikuti konfigurasi model yang tercantum.", + "methodology": "Metodologi" + } +} diff --git a/translations/ja/components/common.json b/translations/ja/components/common.json index 319624e0..452c8404 100644 --- a/translations/ja/components/common.json +++ b/translations/ja/components/common.json @@ -14,6 +14,8 @@ "openMenu": "メニューを開く", "openSourceRank": "オープンソースランキング", "openSourceRankDesc": "GitHub スターでオープンソース AI コーディングプロジェクトを探索", + "modelIntelligenceIndex": "モデル知能指数", + "modelIntelligenceIndexDesc": "リリースごとのモデル知能の変化を追跡", "ranking": "ランキング", "toggleMenu": "メニューを切り替え" } diff --git a/translations/ja/index.ts b/translations/ja/index.ts index 281c98b7..99dd3ece 100644 --- a/translations/ja/index.ts +++ b/translations/ja/index.ts @@ -25,6 +25,7 @@ import landscape from './pages/landscape.json' import manifesto from './pages/manifesto.json' import modelCompare from './pages/model-compare.json' import modelDetail from './pages/model-detail.json' +import modelIntelligenceIndex from './pages/model-intelligence-index.json' import modelProviders from './pages/model-providers.json' import models from './pages/models.json' import openSourceRank from './pages/open-source-rank.json' @@ -52,6 +53,7 @@ export default { extensions, models, modelDetail, + modelIntelligenceIndex, modelCompare, modelProviders, vendors, diff --git a/translations/ja/pages/model-intelligence-index.json b/translations/ja/pages/model-intelligence-index.json new file mode 100644 index 00000000..9c4a2c04 --- /dev/null +++ b/translations/ja/pages/model-intelligence-index.json @@ -0,0 +1,31 @@ +{ + "meta": { + "title": "モデル知能指数", + "description": "コーディングモデルの知能スコアの推移を、ベンダーとモデル系列ごとに追跡します。", + "keywords": "モデル知能指数, AIモデル年表, コーディングモデルベンチマーク, モデルリリース履歴" + }, + "title": "モデル知能指数", + "description": "リリースごとのコーディングモデルの知能の変化を確認できます。", + "releaseDate": "リリース日", + "chart": { + "title": "能力の推移", + "axisHint": "リリース日 × Index", + "modelCount": "カタログ内のモデル {count} 件", + "indexAxis": "Intelligence Index" + }, + "filter": { + "label": "ベンダーで絞り込む", + "showAll": "すべて表示" + }, + "list": { + "title": "モデル指数", + "description": "モデルをリリース日または Index スコアで並べ替えられます。バーの長さは同一スケールです。", + "index": "Index", + "barLabel": "{model} の Index:{score}" + }, + "source": { + "attribution": "Artificial Analysis Intelligence Index v{version}、{date} 時点。出典:", + "estimated": "* は Artificial Analysis が表示する推定値です。スコアは記載されたモデル構成に対応します。", + "methodology": "評価方法" + } +} diff --git a/translations/ko/components/common.json b/translations/ko/components/common.json index 9f6433dd..25200286 100644 --- a/translations/ko/components/common.json +++ b/translations/ko/components/common.json @@ -14,6 +14,8 @@ "openMenu": "메뉴 열기", "openSourceRank": "오픈소스 순위", "openSourceRankDesc": "GitHub 스타로 오픈 소스 AI 코딩 프로젝트를 탐색하세요", + "modelIntelligenceIndex": "모델 지능 지수", + "modelIntelligenceIndexDesc": "출시별 모델 지능 변화를 추적", "ranking": "순위", "toggleMenu": "메뉴 토글" } diff --git a/translations/ko/index.ts b/translations/ko/index.ts index 5abcb833..d9dae7c0 100644 --- a/translations/ko/index.ts +++ b/translations/ko/index.ts @@ -25,6 +25,7 @@ import landscape from './pages/landscape.json' import manifesto from './pages/manifesto.json' import modelCompare from './pages/model-compare.json' import modelDetail from './pages/model-detail.json' +import modelIntelligenceIndex from './pages/model-intelligence-index.json' import modelProviders from './pages/model-providers.json' import models from './pages/models.json' import openSourceRank from './pages/open-source-rank.json' @@ -52,6 +53,7 @@ export default { extensions, models, modelDetail, + modelIntelligenceIndex, modelCompare, modelProviders, vendors, diff --git a/translations/ko/pages/model-intelligence-index.json b/translations/ko/pages/model-intelligence-index.json new file mode 100644 index 00000000..cb482f63 --- /dev/null +++ b/translations/ko/pages/model-intelligence-index.json @@ -0,0 +1,31 @@ +{ + "meta": { + "title": "모델 지능 지수", + "description": "코딩 모델의 지능 점수 변화를 공급업체 및 모델 계열별로 추적합니다.", + "keywords": "모델 지능 지수, AI 모델 타임라인, 코딩 모델 벤치마크, 모델 출시 이력" + }, + "title": "모델 지능 지수", + "description": "출시 시점에 따른 코딩 모델 지능의 변화를 살펴보세요.", + "releaseDate": "출시일", + "chart": { + "title": "시간에 따른 성능", + "axisHint": "출시일 × Index", + "modelCount": "카탈로그 모델 {count}개", + "indexAxis": "Intelligence Index" + }, + "filter": { + "label": "공급업체별 필터", + "showAll": "모두 표시" + }, + "list": { + "title": "모델 인덱스", + "description": "모델을 출시일 또는 Index 점수로 정렬할 수 있습니다. 막대 길이는 동일한 척도를 사용합니다.", + "index": "Index", + "barLabel": "{model} Index: {score}" + }, + "source": { + "attribution": "Artificial Analysis Intelligence Index v{version}, {date} 기준. 출처:", + "estimated": "*는 Artificial Analysis가 표시한 추정값입니다. 점수는 명시된 모델 구성에 해당합니다.", + "methodology": "평가 방법" + } +} diff --git a/translations/pt/components/common.json b/translations/pt/components/common.json index 09e639c9..ba189a27 100644 --- a/translations/pt/components/common.json +++ b/translations/pt/components/common.json @@ -14,6 +14,8 @@ "openMenu": "Abrir menu", "openSourceRank": "Classificação Open Source", "openSourceRankDesc": "Explore projetos de codificação IA open source por estrelas do GitHub", + "modelIntelligenceIndex": "Índice de inteligência dos modelos", + "modelIntelligenceIndexDesc": "Acompanhe a inteligência dos modelos entre lançamentos", "ranking": "Classificação", "toggleMenu": "Alternar menu" } diff --git a/translations/pt/index.ts b/translations/pt/index.ts index 92d61723..1e67e60f 100644 --- a/translations/pt/index.ts +++ b/translations/pt/index.ts @@ -25,6 +25,7 @@ import landscape from './pages/landscape.json' import manifesto from './pages/manifesto.json' import modelCompare from './pages/model-compare.json' import modelDetail from './pages/model-detail.json' +import modelIntelligenceIndex from './pages/model-intelligence-index.json' import modelProviders from './pages/model-providers.json' import models from './pages/models.json' import openSourceRank from './pages/open-source-rank.json' @@ -52,6 +53,7 @@ export default { extensions, models, modelDetail, + modelIntelligenceIndex, modelCompare, modelProviders, vendors, diff --git a/translations/pt/pages/model-intelligence-index.json b/translations/pt/pages/model-intelligence-index.json new file mode 100644 index 00000000..0cb90036 --- /dev/null +++ b/translations/pt/pages/model-intelligence-index.json @@ -0,0 +1,31 @@ +{ + "meta": { + "title": "Índice de inteligência dos modelos", + "description": "Acompanhe as pontuações de inteligência dos modelos de programação ao longo do tempo, agrupadas por fornecedor e série.", + "keywords": "índice de inteligência dos modelos, cronologia de modelos de IA, benchmarks de modelos de programação, histórico de lançamentos" + }, + "title": "Índice de inteligência dos modelos", + "description": "Explore como a inteligência dos modelos de programação muda entre lançamentos.", + "releaseDate": "Data de lançamento", + "chart": { + "title": "Capacidade ao longo do tempo", + "axisHint": "Data de lançamento × Index", + "modelCount": "{count} modelos no catálogo", + "indexAxis": "Intelligence Index" + }, + "filter": { + "label": "Filtrar por fornecedor", + "showAll": "Mostrar todos" + }, + "list": { + "title": "Índice de modelos", + "description": "Ordene os modelos por data de lançamento ou pontuação do Index. As barras usam a mesma escala.", + "index": "Índice", + "barLabel": "Índice de {model}: {score}" + }, + "source": { + "attribution": "Artificial Analysis Intelligence Index v{version}, consultado em {date}. Fonte:", + "estimated": "* assinala estimativas apresentadas pela Artificial Analysis. As pontuações correspondem à configuração indicada.", + "methodology": "Metodologia" + } +} diff --git a/translations/ru/components/common.json b/translations/ru/components/common.json index 386a8118..94a61a98 100644 --- a/translations/ru/components/common.json +++ b/translations/ru/components/common.json @@ -14,6 +14,8 @@ "openMenu": "Открыть меню", "openSourceRank": "Рейтинг с открытым исходным кодом", "openSourceRankDesc": "Исследуйте проекты AI-программирования с открытым исходным кодом по звёздам GitHub", + "modelIntelligenceIndex": "Индекс интеллекта моделей", + "modelIntelligenceIndexDesc": "Отслеживайте интеллект моделей от выпуска к выпуску", "ranking": "Рейтинг", "toggleMenu": "Переключить меню" } diff --git a/translations/ru/index.ts b/translations/ru/index.ts index 1d97baf8..20d1c050 100644 --- a/translations/ru/index.ts +++ b/translations/ru/index.ts @@ -25,6 +25,7 @@ import landscape from './pages/landscape.json' import manifesto from './pages/manifesto.json' import modelCompare from './pages/model-compare.json' import modelDetail from './pages/model-detail.json' +import modelIntelligenceIndex from './pages/model-intelligence-index.json' import modelProviders from './pages/model-providers.json' import models from './pages/models.json' import openSourceRank from './pages/open-source-rank.json' @@ -52,6 +53,7 @@ export default { extensions, models, modelDetail, + modelIntelligenceIndex, modelCompare, modelProviders, vendors, diff --git a/translations/ru/pages/model-intelligence-index.json b/translations/ru/pages/model-intelligence-index.json new file mode 100644 index 00000000..a20e615e --- /dev/null +++ b/translations/ru/pages/model-intelligence-index.json @@ -0,0 +1,31 @@ +{ + "meta": { + "title": "Индекс интеллекта моделей", + "description": "Отслеживайте значения интеллекта моделей для программирования во времени с группировкой по разработчикам и сериям.", + "keywords": "индекс интеллекта моделей, хронология AI-моделей, тесты моделей для программирования, история выпусков" + }, + "title": "Индекс интеллекта моделей", + "description": "Узнайте, как меняется интеллект моделей для программирования от выпуска к выпуску.", + "releaseDate": "Дата выпуска", + "chart": { + "title": "Возможности во времени", + "axisHint": "Дата выпуска × Index", + "modelCount": "Моделей в каталоге: {count}", + "indexAxis": "Intelligence Index" + }, + "filter": { + "label": "Фильтр по разработчику", + "showAll": "Показать все" + }, + "list": { + "title": "Индекс моделей", + "description": "Сортируйте модели по дате выпуска или значению Index. Длины полос используют единую шкалу.", + "index": "Индекс", + "barLabel": "Индекс {model}: {score}" + }, + "source": { + "attribution": "Artificial Analysis Intelligence Index v{version}, данные на {date}. Источник:", + "estimated": "* отмечает оценки, указанные Artificial Analysis. Значения относятся к приведённой конфигурации модели.", + "methodology": "Методология" + } +} diff --git a/translations/tr/components/common.json b/translations/tr/components/common.json index d27e73a1..96cb2a16 100644 --- a/translations/tr/components/common.json +++ b/translations/tr/components/common.json @@ -14,6 +14,8 @@ "openMenu": "Menüyü aç", "openSourceRank": "Açık Kaynak Sıralaması", "openSourceRankDesc": "GitHub yıldızlarına göre açık kaynaklı AI kodlama projelerini keşfedin", + "modelIntelligenceIndex": "Model Zekâsı Endeksi", + "modelIntelligenceIndexDesc": "Model zekâ puanlarını sürümler arasında izleyin", "ranking": "Sıralama", "toggleMenu": "Menüyü değiştir" } diff --git a/translations/tr/index.ts b/translations/tr/index.ts index 5322a900..633f8913 100644 --- a/translations/tr/index.ts +++ b/translations/tr/index.ts @@ -25,6 +25,7 @@ import landscape from './pages/landscape.json' import manifesto from './pages/manifesto.json' import modelCompare from './pages/model-compare.json' import modelDetail from './pages/model-detail.json' +import modelIntelligenceIndex from './pages/model-intelligence-index.json' import modelProviders from './pages/model-providers.json' import models from './pages/models.json' import openSourceRank from './pages/open-source-rank.json' @@ -52,6 +53,7 @@ export default { extensions, models, modelDetail, + modelIntelligenceIndex, modelCompare, modelProviders, vendors, diff --git a/translations/tr/pages/model-intelligence-index.json b/translations/tr/pages/model-intelligence-index.json new file mode 100644 index 00000000..ac9fb886 --- /dev/null +++ b/translations/tr/pages/model-intelligence-index.json @@ -0,0 +1,31 @@ +{ + "meta": { + "title": "Model Zekâsı Endeksi", + "description": "Kodlama modellerinin zekâ puanlarını sağlayıcı ve model serisine göre zaman içinde izleyin.", + "keywords": "model zekâsı endeksi, AI model zaman çizelgesi, kodlama modeli benchmarkları, model sürüm geçmişi" + }, + "title": "Model Zekâsı Endeksi", + "description": "Kodlama modellerinin zekâ puanlarının sürümler arasında nasıl değiştiğini keşfedin.", + "releaseDate": "Sürüm tarihi", + "chart": { + "title": "Zaman içinde yetenek", + "axisHint": "Sürüm tarihi × Index", + "modelCount": "Katalogda {count} model", + "indexAxis": "Intelligence Index" + }, + "filter": { + "label": "Sağlayıcıya göre filtrele", + "showAll": "Tümünü göster" + }, + "list": { + "title": "Model indeksi", + "description": "Modelleri sürüm tarihine veya Index puanına göre sıralayın. Çubuk uzunlukları aynı ölçeği kullanır.", + "index": "Index", + "barLabel": "{model} Index: {score}" + }, + "source": { + "attribution": "Artificial Analysis Intelligence Index v{version}, {date} tarihinde gözlemlendi. Kaynak:", + "estimated": "* Artificial Analysis tarafından gösterilen tahminleri belirtir. Puanlar listelenen model yapılandırmasını yansıtır.", + "methodology": "Metodoloji" + } +} diff --git a/translations/zh-Hans/components/common.json b/translations/zh-Hans/components/common.json index 8f1149df..45cc5e9e 100644 --- a/translations/zh-Hans/components/common.json +++ b/translations/zh-Hans/components/common.json @@ -14,6 +14,8 @@ "openMenu": "打开菜单", "openSourceRank": "开源排行榜", "openSourceRankDesc": "按 GitHub 星标数探索开源 AI 编码项目", + "modelIntelligenceIndex": "模型智能指数", + "modelIntelligenceIndexDesc": "追踪模型智能指数随版本发布的变化", "ranking": "排行榜", "toggleMenu": "切换菜单" } diff --git a/translations/zh-Hans/index.ts b/translations/zh-Hans/index.ts index c6742091..8662c086 100644 --- a/translations/zh-Hans/index.ts +++ b/translations/zh-Hans/index.ts @@ -25,6 +25,7 @@ import landscape from './pages/landscape.json' import manifesto from './pages/manifesto.json' import modelCompare from './pages/model-compare.json' import modelDetail from './pages/model-detail.json' +import modelIntelligenceIndex from './pages/model-intelligence-index.json' import modelProviders from './pages/model-providers.json' import models from './pages/models.json' import openSourceRank from './pages/open-source-rank.json' @@ -52,6 +53,7 @@ export default { extensions, models, modelDetail, + modelIntelligenceIndex, modelCompare, modelProviders, vendors, diff --git a/translations/zh-Hans/pages/model-intelligence-index.json b/translations/zh-Hans/pages/model-intelligence-index.json new file mode 100644 index 00000000..a112ae54 --- /dev/null +++ b/translations/zh-Hans/pages/model-intelligence-index.json @@ -0,0 +1,31 @@ +{ + "meta": { + "title": "模型智能指数", + "description": "按厂商和模型系列追踪 Coding 模型智能指数随时间的变化。", + "keywords": "模型智能指数, AI 模型时间线, Coding 模型基准, 模型发布历史" + }, + "title": "模型智能指数", + "description": "查看 Coding 模型智能指数随发布时间的变化。", + "releaseDate": "发布时间", + "chart": { + "title": "能力随时间的变化", + "axisHint": "发布时间 × Index", + "modelCount": "目录中的 {count} 个模型", + "indexAxis": "Intelligence Index" + }, + "filter": { + "label": "按厂商筛选", + "showAll": "显示全部" + }, + "list": { + "title": "模型 Index", + "description": "可按发布时间或 Index 值排序,条形长度使用相同比例。", + "index": "Index", + "barLabel": "{model} 的 Index:{score}" + }, + "source": { + "attribution": "Artificial Analysis Intelligence Index v{version},数据观察于 {date}。来源:", + "estimated": "* 表示 Artificial Analysis 标记的估算值;分数对应列表中注明的模型配置。", + "methodology": "查看方法说明" + } +} diff --git a/translations/zh-Hant/components/common.json b/translations/zh-Hant/components/common.json index 8ef1fdf0..c9f53828 100644 --- a/translations/zh-Hant/components/common.json +++ b/translations/zh-Hant/components/common.json @@ -14,6 +14,8 @@ "openMenu": "開啟選單", "openSourceRank": "開放原始碼排行榜", "openSourceRankDesc": "依 GitHub 星標數探索開放原始碼 AI 編碼專案", + "modelIntelligenceIndex": "模型智慧指數", + "modelIntelligenceIndexDesc": "追蹤模型智慧指數隨版本發布的變化", "ranking": "排行榜", "toggleMenu": "切換選單" } diff --git a/translations/zh-Hant/index.ts b/translations/zh-Hant/index.ts index 310bb0cf..907683cd 100644 --- a/translations/zh-Hant/index.ts +++ b/translations/zh-Hant/index.ts @@ -25,6 +25,7 @@ import landscape from './pages/landscape.json' import manifesto from './pages/manifesto.json' import modelCompare from './pages/model-compare.json' import modelDetail from './pages/model-detail.json' +import modelIntelligenceIndex from './pages/model-intelligence-index.json' import modelProviders from './pages/model-providers.json' import models from './pages/models.json' import openSourceRank from './pages/open-source-rank.json' @@ -52,6 +53,7 @@ export default { extensions, models, modelDetail, + modelIntelligenceIndex, modelCompare, modelProviders, vendors, diff --git a/translations/zh-Hant/pages/model-intelligence-index.json b/translations/zh-Hant/pages/model-intelligence-index.json new file mode 100644 index 00000000..1c6f0b06 --- /dev/null +++ b/translations/zh-Hant/pages/model-intelligence-index.json @@ -0,0 +1,31 @@ +{ + "meta": { + "title": "模型智慧指數", + "description": "依廠商和模型系列追蹤 Coding 模型智慧指數隨時間的變化。", + "keywords": "模型智慧指數, AI 模型時間線, Coding 模型基準, 模型發布歷史" + }, + "title": "模型智慧指數", + "description": "查看 Coding 模型智慧指數隨發布時間的變化。", + "releaseDate": "發布時間", + "chart": { + "title": "能力隨時間的變化", + "axisHint": "發布時間 × Index", + "modelCount": "目錄中的 {count} 個模型", + "indexAxis": "Intelligence Index" + }, + "filter": { + "label": "依廠商篩選", + "showAll": "顯示全部" + }, + "list": { + "title": "模型 Index", + "description": "可依發布時間或 Index 值排序,長條長度使用相同比例。", + "index": "Index", + "barLabel": "{model} 的 Index:{score}" + }, + "source": { + "attribution": "Artificial Analysis Intelligence Index v{version},資料觀察於 {date}。來源:", + "estimated": "* 表示 Artificial Analysis 標記的估算值;分數對應列表中註明的模型設定。", + "methodology": "查看方法說明" + } +} From 65257c7c10bb26bd79b8d76e82fded3c4afb4323 Mon Sep 17 00:00:00 2001 From: Pan YANG Date: Sun, 26 Jul 2026 20:13:44 +0800 Subject: [PATCH 6/7] fix(models): localize comparison token counts --- .../models/compare/[models]/page.client.tsx | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/app/[locale]/models/compare/[models]/page.client.tsx b/src/app/[locale]/models/compare/[models]/page.client.tsx index 0c50f41b..9b9e9249 100644 --- a/src/app/[locale]/models/compare/[models]/page.client.tsx +++ b/src/app/[locale]/models/compare/[models]/page.client.tsx @@ -69,8 +69,14 @@ const FALLBACK_MODEL: ManifestModel = { } // Helper functions for formatting -const formatNumberToK = (value: number | null | undefined): string => { - return value ? `${(value / 1000).toFixed(0)}K` : '-' +const formatNumberToK = (value: number | null | undefined, locale: string): string => { + if (!value) return '-' + + const thousands = new Intl.NumberFormat(locale, { + maximumFractionDigits: 0, + }).format(value / 1000) + + return `${thousands}K` } const formatPercentage = (value: number | null | undefined): string => { @@ -86,8 +92,11 @@ const createSimpleRenderer = (getValue: (model: ManifestModel) => string | null return (model: ManifestModel) => formatSimpleValue(getValue(model)) } -const createNumberToKRenderer = (getValue: (model: ManifestModel) => number | null | undefined) => { - return (model: ManifestModel) => formatNumberToK(getValue(model)) +const createNumberToKRenderer = ( + getValue: (model: ManifestModel) => number | null | undefined, + locale: string +) => { + return (model: ManifestModel) => formatNumberToK(getValue(model), locale) } const createPriceRenderer = ( @@ -275,14 +284,14 @@ export default function ComparePageClient({ groupLabel: tShared('capabilities.capabilities'), key: 'contextWindow', label: tShared('terms.contextWindow'), - render: createNumberToKRenderer(m => m.contextWindow), + render: createNumberToKRenderer(m => m.contextWindow, locale), }, { group: 'capabilities', groupLabel: tShared('capabilities.capabilities'), key: 'maxOutput', label: tShared('terms.maxOutput'), - render: createNumberToKRenderer(m => m.maxOutput), + render: createNumberToKRenderer(m => m.maxOutput, locale), }, { group: 'capabilities', From a71ac6011d97fe186cecdf772a99e5230db6ed31 Mon Sep 17 00:00:00 2001 From: Pan YANG Date: Sun, 26 Jul 2026 20:56:18 +0800 Subject: [PATCH 7/7] fix(deps): resolve high severity audit findings --- package-lock.json | 2143 +++++++++++++++++++++------------------------ package.json | 4 + 2 files changed, 1004 insertions(+), 1143 deletions(-) diff --git a/package-lock.json b/package-lock.json index 88b2c184..861e2ec6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -76,7 +76,7 @@ }, "node_modules/@ast-grep/napi": { "version": "0.40.5", - "resolved": "https://registry.npmmirror.com/@ast-grep/napi/-/napi-0.40.5.tgz", + "resolved": "https://registry.npmjs.org/@ast-grep/napi/-/napi-0.40.5.tgz", "integrity": "sha512-hJA62OeBKUQT68DD2gDyhOqJxZxycqg8wLxbqjgqSzYttCMSDL9tiAQ9abgekBYNHudbJosm9sWOEbmCDfpX2A==", "license": "MIT", "engines": { @@ -96,7 +96,7 @@ }, "node_modules/@ast-grep/napi-darwin-arm64": { "version": "0.40.5", - "resolved": "https://registry.npmmirror.com/@ast-grep/napi-darwin-arm64/-/napi-darwin-arm64-0.40.5.tgz", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-darwin-arm64/-/napi-darwin-arm64-0.40.5.tgz", "integrity": "sha512-2F072fGN0WTq7KI3okuEnkGJVEHLbi56Bw1H6NAMf7j2mJJeQWsRyGOMcyNnUXZDeNdvoMH0OB2a5wwUegY/nQ==", "cpu": [ "arm64" @@ -112,7 +112,7 @@ }, "node_modules/@ast-grep/napi-darwin-x64": { "version": "0.40.5", - "resolved": "https://registry.npmmirror.com/@ast-grep/napi-darwin-x64/-/napi-darwin-x64-0.40.5.tgz", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-darwin-x64/-/napi-darwin-x64-0.40.5.tgz", "integrity": "sha512-dJMidHZhhxuLBYNi6/FKI812jQ7wcFPSKkVPwviez2D+KvYagapUMAV/4dJ7FCORfguVk8Y0jpPAlYmWRT5nvA==", "cpu": [ "x64" @@ -128,7 +128,7 @@ }, "node_modules/@ast-grep/napi-linux-arm64-gnu": { "version": "0.40.5", - "resolved": "https://registry.npmmirror.com/@ast-grep/napi-linux-arm64-gnu/-/napi-linux-arm64-gnu-0.40.5.tgz", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-linux-arm64-gnu/-/napi-linux-arm64-gnu-0.40.5.tgz", "integrity": "sha512-nBRCbyoS87uqkaw4Oyfe5VO+SRm2B+0g0T8ME69Qry9ShMf41a2bTdpcQx9e8scZPogq+CTwDHo3THyBV71l9w==", "cpu": [ "arm64" @@ -144,7 +144,7 @@ }, "node_modules/@ast-grep/napi-linux-arm64-musl": { "version": "0.40.5", - "resolved": "https://registry.npmmirror.com/@ast-grep/napi-linux-arm64-musl/-/napi-linux-arm64-musl-0.40.5.tgz", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-linux-arm64-musl/-/napi-linux-arm64-musl-0.40.5.tgz", "integrity": "sha512-/qKsmds5FMoaEj6FdNzepbmLMtlFuBLdrAn9GIWCqOIcVcYvM1Nka8+mncfeXB/MFZKOrzQsQdPTWqrrQzXLrA==", "cpu": [ "arm64" @@ -160,7 +160,7 @@ }, "node_modules/@ast-grep/napi-linux-x64-gnu": { "version": "0.40.5", - "resolved": "https://registry.npmmirror.com/@ast-grep/napi-linux-x64-gnu/-/napi-linux-x64-gnu-0.40.5.tgz", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-linux-x64-gnu/-/napi-linux-x64-gnu-0.40.5.tgz", "integrity": "sha512-DP4oDbq7f/1A2hRTFLhJfDFR6aI5mRWdEfKfHzRItmlKsR9WlcEl1qDJs/zX9R2EEtIDsSKRzuJNfJllY3/W8Q==", "cpu": [ "x64" @@ -176,7 +176,7 @@ }, "node_modules/@ast-grep/napi-linux-x64-musl": { "version": "0.40.5", - "resolved": "https://registry.npmmirror.com/@ast-grep/napi-linux-x64-musl/-/napi-linux-x64-musl-0.40.5.tgz", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-linux-x64-musl/-/napi-linux-x64-musl-0.40.5.tgz", "integrity": "sha512-BRZUvVBPUNpWPo6Ns8chXVzxHPY+k9gpsubGTHy92Q26ecZULd/dTkWWdnvfhRqttsSQ9Pe/XQdi5+hDQ6RYcg==", "cpu": [ "x64" @@ -192,7 +192,7 @@ }, "node_modules/@ast-grep/napi-win32-arm64-msvc": { "version": "0.40.5", - "resolved": "https://registry.npmmirror.com/@ast-grep/napi-win32-arm64-msvc/-/napi-win32-arm64-msvc-0.40.5.tgz", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-win32-arm64-msvc/-/napi-win32-arm64-msvc-0.40.5.tgz", "integrity": "sha512-y95zSEwc7vhxmcrcH0GnK4ZHEBQrmrszRBNQovzaciF9GUqEcCACNLoBesn4V47IaOp4fYgD2/EhGRTIBFb2Ug==", "cpu": [ "arm64" @@ -208,7 +208,7 @@ }, "node_modules/@ast-grep/napi-win32-ia32-msvc": { "version": "0.40.5", - "resolved": "https://registry.npmmirror.com/@ast-grep/napi-win32-ia32-msvc/-/napi-win32-ia32-msvc-0.40.5.tgz", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-win32-ia32-msvc/-/napi-win32-ia32-msvc-0.40.5.tgz", "integrity": "sha512-K/u8De62iUnFCzVUs7FBdTZ2Jrgc5/DLHqjpup66KxZ7GIM9/HGME/O8aSoPkpcAeCD4TiTZ11C1i5p5H98hTg==", "cpu": [ "ia32" @@ -224,7 +224,7 @@ }, "node_modules/@ast-grep/napi-win32-x64-msvc": { "version": "0.40.5", - "resolved": "https://registry.npmmirror.com/@ast-grep/napi-win32-x64-msvc/-/napi-win32-x64-msvc-0.40.5.tgz", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-win32-x64-msvc/-/napi-win32-x64-msvc-0.40.5.tgz", "integrity": "sha512-dqm5zg/o4Nh4VOQPEpMS23ot8HVd22gG0eg01t4CFcZeuzyuSgBlOL3N7xLbz3iH2sVkk7keuBwAzOIpTqziNQ==", "cpu": [ "x64" @@ -240,7 +240,7 @@ }, "node_modules/@aws-crypto/sha1-browser": { "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz", "integrity": "sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==", "license": "Apache-2.0", "dependencies": { @@ -254,7 +254,7 @@ }, "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-utf8": { "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", "license": "Apache-2.0", "dependencies": { @@ -267,7 +267,7 @@ }, "node_modules/@aws-crypto/sha256-browser": { "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz", "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==", "license": "Apache-2.0", "dependencies": { @@ -282,7 +282,7 @@ }, "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8": { "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", "license": "Apache-2.0", "dependencies": { @@ -295,7 +295,7 @@ }, "node_modules/@aws-crypto/sha256-js": { "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz", "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==", "license": "Apache-2.0", "dependencies": { @@ -309,7 +309,7 @@ }, "node_modules/@aws-crypto/supports-web-crypto": { "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz", "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==", "license": "Apache-2.0", "dependencies": { @@ -318,7 +318,7 @@ }, "node_modules/@aws-crypto/util": { "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/@aws-crypto/util/-/util-5.2.0.tgz", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz", "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==", "license": "Apache-2.0", "dependencies": { @@ -329,7 +329,7 @@ }, "node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8": { "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", "license": "Apache-2.0", "dependencies": { @@ -341,14 +341,14 @@ } }, "node_modules/@aws-sdk/checksums": { - "version": "3.1000.18", - "resolved": "https://registry.npmmirror.com/@aws-sdk/checksums/-/checksums-3.1000.18.tgz", - "integrity": "sha512-IImkbEyXdV6/uaF5r6Wkk+8718mQw1ll83j0a4a30R3JM/rHVFdWAiT4jtJpFjJiIwM/oJ6SxIxr0z2TaQUGqw==", + "version": "3.1000.20", + "resolved": "https://registry.npmjs.org/@aws-sdk/checksums/-/checksums-3.1000.20.tgz", + "integrity": "sha512-uc5PMNcLcs+UBSLGsRjbMZKi3mgnPSalXpABw9Xjo0DMrv4gjIa/E4a02yJsuU4FF6Tmvis/JgGdKNIOoN4DQw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.975.3", + "@aws-sdk/core": "^3.977.0", "@aws-sdk/types": "^3.974.2", - "@smithy/core": "^3.29.4", + "@smithy/core": "^3.29.8", "@smithy/types": "^4.16.1", "tslib": "^2.6.2" }, @@ -358,7 +358,7 @@ }, "node_modules/@aws-sdk/client-cloudfront": { "version": "3.984.0", - "resolved": "https://registry.npmmirror.com/@aws-sdk/client-cloudfront/-/client-cloudfront-3.984.0.tgz", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudfront/-/client-cloudfront-3.984.0.tgz", "integrity": "sha512-couDuDLpJtoeWne/nYyJ+I+5ntBVdNgBVRTCoDaXuVV7OC3u/wz5Ps0+GogspEwMLEFoOJ8t691h3YXQtnpQTw==", "license": "Apache-2.0", "dependencies": { @@ -410,7 +410,7 @@ }, "node_modules/@aws-sdk/client-dynamodb": { "version": "3.984.0", - "resolved": "https://registry.npmmirror.com/@aws-sdk/client-dynamodb/-/client-dynamodb-3.984.0.tgz", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-dynamodb/-/client-dynamodb-3.984.0.tgz", "integrity": "sha512-8/Oft9MWQtbG6p9f8eY5fsKC2CcO5YVDlwive8eUYS9mEbgnyQxm68OyH26WvsSTykQ9QkIbR+fOG56RsIBODw==", "license": "Apache-2.0", "dependencies": { @@ -463,7 +463,7 @@ }, "node_modules/@aws-sdk/client-lambda": { "version": "3.984.0", - "resolved": "https://registry.npmmirror.com/@aws-sdk/client-lambda/-/client-lambda-3.984.0.tgz", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-lambda/-/client-lambda-3.984.0.tgz", "integrity": "sha512-kqwNBIGNxGVhINwgN/UQfdsQkaMjbu9PFV2EhATWouV+RT60uMjK9JENgLDwbgJmEVbbnPsh9HaZ5KKwPSdiDg==", "license": "Apache-2.0", "dependencies": { @@ -518,7 +518,7 @@ }, "node_modules/@aws-sdk/client-s3": { "version": "3.984.0", - "resolved": "https://registry.npmmirror.com/@aws-sdk/client-s3/-/client-s3-3.984.0.tgz", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.984.0.tgz", "integrity": "sha512-7ny2Slr93Y+QniuluvcfWwyDi32zWQfznynL56Tk0vVh7bWrvS/odm8WP2nInKicRVNipcJHY2YInur6Q/9V0A==", "license": "Apache-2.0", "dependencies": { @@ -584,7 +584,7 @@ }, "node_modules/@aws-sdk/client-sqs": { "version": "3.984.0", - "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sqs/-/client-sqs-3.984.0.tgz", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sqs/-/client-sqs-3.984.0.tgz", "integrity": "sha512-TDvHpOUWlpanc3xQ5Xw0y8L2hoojBFCCSmXQ/6rKqGOf1ScX3dMA+K9aF0Zp0iwjhSh4VvsHD42esl8XwQZDjA==", "license": "Apache-2.0", "dependencies": { @@ -635,16 +635,16 @@ } }, "node_modules/@aws-sdk/core": { - "version": "3.975.3", - "resolved": "https://registry.npmmirror.com/@aws-sdk/core/-/core-3.975.3.tgz", - "integrity": "sha512-7ur3kCKuvPLqlsZ2XlvnNBVQ7KkpSu6Y6dOTwSPHLrFpTEfZM8isLBJc4cgv96WB7GifeVM436mpycwxBd2vEA==", + "version": "3.977.1", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.977.1.tgz", + "integrity": "sha512-KVtQRtc00ES/y+Sc3vYXeP6pCIcNlBJCZOwvqSy8ZpVGmbM5+IG+AfhuTKQ2oXmIVqZJewaGMMpzPkywC6xg0w==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.974.2", - "@aws-sdk/xml-builder": "^3.972.36", + "@aws-sdk/xml-builder": "^3.972.37", "@aws/lambda-invoke-store": "^0.3.0", - "@smithy/core": "^3.29.4", - "@smithy/signature-v4": "^5.6.5", + "@smithy/core": "^3.29.8", + "@smithy/signature-v4": "^5.6.9", "@smithy/types": "^4.16.1", "bowser": "^2.11.0", "tslib": "^2.6.2" @@ -654,14 +654,14 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.972.59", - "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.59.tgz", - "integrity": "sha512-Ny5e4Mfh3QPmiAc0AiUe+cbTXDlxkU3Rc+EpWOfyWeWEy6yp7Fa1KmfNeCc+1a8by9zQ9gtohmiQUkMPScF3ng==", + "version": "3.972.61", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.61.tgz", + "integrity": "sha512-qihs2ekMb89Nxd2JenCgVFhjbkb3EIo7HEBCBzyZACKVJdrLUZBLOmAE3xr0Sayml8n/jZSzwO/IufIiIzO7PQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.975.3", + "@aws-sdk/core": "^3.977.0", "@aws-sdk/types": "^3.974.2", - "@smithy/core": "^3.29.4", + "@smithy/core": "^3.29.8", "@smithy/types": "^4.16.1", "tslib": "^2.6.2" }, @@ -670,16 +670,16 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.972.61", - "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.61.tgz", - "integrity": "sha512-8jAjgStl5Ytq4+HF3X/9f+EmRinaRbGRRtQGktlPfBRVx73H+R1y48vIeXerQtYGFaUqkEp3fT6jP854rVO2yQ==", + "version": "3.972.63", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.63.tgz", + "integrity": "sha512-yfozsS8wkWZEi/n6IsrodcFKBWZ0iNAezhJbTReMNc0z1Px17qdeAeuL1/wziCAmCZyXiW7QzP75ggJkBQv8jQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.975.3", + "@aws-sdk/core": "^3.977.0", "@aws-sdk/types": "^3.974.2", - "@smithy/core": "^3.29.4", - "@smithy/fetch-http-handler": "^5.6.6", - "@smithy/node-http-handler": "^4.9.6", + "@smithy/core": "^3.29.8", + "@smithy/fetch-http-handler": "^5.6.10", + "@smithy/node-http-handler": "^4.9.10", "@smithy/types": "^4.16.1", "tslib": "^2.6.2" }, @@ -688,22 +688,22 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.973.4", - "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.973.4.tgz", - "integrity": "sha512-e6ZvVsj90aRALf1kHP+J4iqC1496ZpVgqI/+u0LJ5HL7q7ATauGy4gdDvRCP13L1pN/fMiZLah162PGIYkbUVQ==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/core": "^3.975.3", - "@aws-sdk/credential-provider-env": "^3.972.59", - "@aws-sdk/credential-provider-http": "^3.972.61", - "@aws-sdk/credential-provider-login": "^3.972.66", - "@aws-sdk/credential-provider-process": "^3.972.59", - "@aws-sdk/credential-provider-sso": "^3.973.3", - "@aws-sdk/credential-provider-web-identity": "^3.972.65", - "@aws-sdk/nested-clients": "^3.997.33", + "version": "3.973.6", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.973.6.tgz", + "integrity": "sha512-jGLTW1bj148GL/6/IMlfY2fMYS9FtHOG+NahkFD4y0qkzYudNUahelxryY68/HGMslYuHClk1XaS/3b3eJzEkg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.0", + "@aws-sdk/credential-provider-env": "^3.972.61", + "@aws-sdk/credential-provider-http": "^3.972.63", + "@aws-sdk/credential-provider-login": "^3.972.68", + "@aws-sdk/credential-provider-process": "^3.972.61", + "@aws-sdk/credential-provider-sso": "^3.973.5", + "@aws-sdk/credential-provider-web-identity": "^3.972.67", + "@aws-sdk/nested-clients": "^3.997.35", "@aws-sdk/types": "^3.974.2", - "@smithy/core": "^3.29.4", - "@smithy/credential-provider-imds": "^4.4.9", + "@smithy/core": "^3.29.8", + "@smithy/credential-provider-imds": "^4.4.13", "@smithy/types": "^4.16.1", "tslib": "^2.6.2" }, @@ -712,15 +712,15 @@ } }, "node_modules/@aws-sdk/credential-provider-login": { - "version": "3.972.66", - "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.66.tgz", - "integrity": "sha512-g2fsqm87r/nKthLZ0VkkDBElkGg0PvSa8d97HQ6EilMbJTZ6hxa8FxkSZyJfgPfFdZn0TTmkOffQmTSUcAHIng==", + "version": "3.972.68", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.68.tgz", + "integrity": "sha512-w6tNci6g7RqFpLhj1f5xseBvaNojb4Pkgp5Jp5apl9hrJtaf2AA+rX9+qlhlWUK6kcyAFYPA7emO+55zj+S98Q==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.975.3", - "@aws-sdk/nested-clients": "^3.997.33", + "@aws-sdk/core": "^3.977.0", + "@aws-sdk/nested-clients": "^3.997.35", "@aws-sdk/types": "^3.974.2", - "@smithy/core": "^3.29.4", + "@smithy/core": "^3.29.8", "@smithy/types": "^4.16.1", "tslib": "^2.6.2" }, @@ -729,20 +729,20 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.972.70", - "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.70.tgz", - "integrity": "sha512-3xzvkGdykBunxqh8WudmUpSyLWvIhfI6aBQo1b5rb3mDO5mNLadK+0hiI0qBQBMVynJbfLO+Ajy9dztMwy9O8w==", + "version": "3.972.72", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.72.tgz", + "integrity": "sha512-blQ7F5QGzylnzeh5549zQLoCAiMHkXFLjFovEMaVy4b2X8JhUu+u9NXro1hyK95YHdVFNmBHKs2hIHtZchxKlQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "^3.972.59", - "@aws-sdk/credential-provider-http": "^3.972.61", - "@aws-sdk/credential-provider-ini": "^3.973.4", - "@aws-sdk/credential-provider-process": "^3.972.59", - "@aws-sdk/credential-provider-sso": "^3.973.3", - "@aws-sdk/credential-provider-web-identity": "^3.972.65", + "@aws-sdk/credential-provider-env": "^3.972.61", + "@aws-sdk/credential-provider-http": "^3.972.63", + "@aws-sdk/credential-provider-ini": "^3.973.6", + "@aws-sdk/credential-provider-process": "^3.972.61", + "@aws-sdk/credential-provider-sso": "^3.973.5", + "@aws-sdk/credential-provider-web-identity": "^3.972.67", "@aws-sdk/types": "^3.974.2", - "@smithy/core": "^3.29.4", - "@smithy/credential-provider-imds": "^4.4.9", + "@smithy/core": "^3.29.8", + "@smithy/credential-provider-imds": "^4.4.13", "@smithy/types": "^4.16.1", "tslib": "^2.6.2" }, @@ -751,14 +751,14 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.972.59", - "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.59.tgz", - "integrity": "sha512-DlZF2/MhLlatDdlrIy3CUCpfdbLrKx+3SMjVo+WyHnPpwzkc/M3vwAHw4OVJf7DMvO+4vfRqSCMc/E9I1auN0g==", + "version": "3.972.61", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.61.tgz", + "integrity": "sha512-xzRuj+fUVO4nkafKQJVKAF97kGpeQbfjuwmRrtGZNf42/1dkmcz6o7dswBy7alY0htQn5sCL1GWQYEykviWZkA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.975.3", + "@aws-sdk/core": "^3.977.0", "@aws-sdk/types": "^3.974.2", - "@smithy/core": "^3.29.4", + "@smithy/core": "^3.29.8", "@smithy/types": "^4.16.1", "tslib": "^2.6.2" }, @@ -767,16 +767,16 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.973.3", - "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.973.3.tgz", - "integrity": "sha512-hmdDHoy2G5Es2e8IgelNMYUuSQI6uCIAKZMJ2u2PdKDhxvbk1uWD/g4+R7R5c/tJfKEB1+KjjWiaoCr/S+ZTiQ==", + "version": "3.973.5", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.973.5.tgz", + "integrity": "sha512-fZRjjWhLFelsDoOYjqShQTrIGYC3Pf9Mx9Czf+1ikfQDgktxjze33dVo1q1/ZQ+T0qbtejVoHNHrfD5aJVpv/w==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.975.3", - "@aws-sdk/nested-clients": "^3.997.33", - "@aws-sdk/token-providers": "3.1088.0", + "@aws-sdk/core": "^3.977.0", + "@aws-sdk/nested-clients": "^3.997.35", + "@aws-sdk/token-providers": "3.1095.0", "@aws-sdk/types": "^3.974.2", - "@smithy/core": "^3.29.4", + "@smithy/core": "^3.29.8", "@smithy/types": "^4.16.1", "tslib": "^2.6.2" }, @@ -785,15 +785,15 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.972.65", - "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.65.tgz", - "integrity": "sha512-gHQb/Kt0chjk/JQDa/GJDqmAvEuVn8n7z10wK2h0LFM9TUDRkohgOO4aEF+s2sBLM0br7Cl5W6P7phgjrrJvLQ==", + "version": "3.972.67", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.67.tgz", + "integrity": "sha512-FTNZ05gkPBA6CKbU3N4zPgybV+stdazwMOya75CmGdcJL7p8Fw/BdHP8WVxJd0mvzyPK2cg/C3gli58Ir4HgCw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.975.3", - "@aws-sdk/nested-clients": "^3.997.33", + "@aws-sdk/core": "^3.977.0", + "@aws-sdk/nested-clients": "^3.997.35", "@aws-sdk/types": "^3.974.2", - "@smithy/core": "^3.29.4", + "@smithy/core": "^3.29.8", "@smithy/types": "^4.16.1", "tslib": "^2.6.2" }, @@ -802,13 +802,13 @@ } }, "node_modules/@aws-sdk/dynamodb-codec": { - "version": "3.973.33", - "resolved": "https://registry.npmmirror.com/@aws-sdk/dynamodb-codec/-/dynamodb-codec-3.973.33.tgz", - "integrity": "sha512-/awY2mG1zvTy22j4ryZL8jfWQdcuppsw17Mxw1tjG92hO+52JoFZaaTWrJIQp066t/aj4JC4II29UJb6g644vA==", + "version": "3.973.35", + "resolved": "https://registry.npmjs.org/@aws-sdk/dynamodb-codec/-/dynamodb-codec-3.973.35.tgz", + "integrity": "sha512-h4l4YbioeEW2vM4OkelGkQ+pboFnTEaRAt8uH/b6oklm0p3NhISHXdbTk8x3/UOvLUNW+5ItU+B5JHTP9QfJBw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.975.3", - "@smithy/core": "^3.29.4", + "@aws-sdk/core": "^3.977.0", + "@smithy/core": "^3.29.8", "@smithy/types": "^4.16.1", "tslib": "^2.6.2" }, @@ -818,7 +818,7 @@ }, "node_modules/@aws-sdk/endpoint-cache": { "version": "3.972.9", - "resolved": "https://registry.npmmirror.com/@aws-sdk/endpoint-cache/-/endpoint-cache-3.972.9.tgz", + "resolved": "https://registry.npmjs.org/@aws-sdk/endpoint-cache/-/endpoint-cache-3.972.9.tgz", "integrity": "sha512-LFvdgq8SriaskUcjpBMDE7J2c9RmuT5v3gU36/znV71EU5DKUis4FmGFjCMelKCCViFeVrQADBAlIiOYRhEx6Q==", "license": "Apache-2.0", "dependencies": { @@ -830,12 +830,12 @@ } }, "node_modules/@aws-sdk/middleware-bucket-endpoint": { - "version": "3.972.37", - "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.972.37.tgz", - "integrity": "sha512-xOPGznyla3UWxUEFJ019Hd3+B5otI08AqnR98cvyRl8GUvWncAsJSmiU2v8S2ybqRjioyum2+cu2h0IGadzs1A==", + "version": "3.972.39", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.972.39.tgz", + "integrity": "sha512-LjXavzQyX9EXedF7TZyI/oIxjRtvZTPlfJklqfvYcozuQ4/FNXlVFtRAU0enCrdT9i4XmLSqPWvn8WcBTmv7Zw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-sdk-s3": "^3.972.64", + "@aws-sdk/middleware-sdk-s3": "^3.972.66", "tslib": "^2.6.2" }, "engines": { @@ -843,14 +843,14 @@ } }, "node_modules/@aws-sdk/middleware-endpoint-discovery": { - "version": "3.972.25", - "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.972.25.tgz", - "integrity": "sha512-5G2aVPmbWC5dFI76D0vsNg2L0fgWP4uybcetf+06dzeZuRtpihnow88fOl5zm3+ABdIw27FKgyFzV4yB5Bm29Q==", + "version": "3.972.26", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.972.26.tgz", + "integrity": "sha512-suOMAYAM43aSyC3cLBvvJIuNyg96nUsPvYQUrq4G+8Prt2qTpFETgaiXX7JP1gIcK5FF0Z2IdyEsPXseZATOPw==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/endpoint-cache": "^3.972.9", "@aws-sdk/types": "^3.974.2", - "@smithy/core": "^3.29.4", + "@smithy/core": "^3.29.8", "@smithy/types": "^4.16.1", "tslib": "^2.6.2" }, @@ -859,12 +859,12 @@ } }, "node_modules/@aws-sdk/middleware-expect-continue": { - "version": "3.972.33", - "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.972.33.tgz", - "integrity": "sha512-nagMlwXbUlNCFX9OUFlwizf1WI77oxOZ70enqb7qS4HMRt5i8qHssXhZrLI5J3RIxAyAsIEX8Zl8lG3HC/pKVg==", + "version": "3.972.35", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.972.35.tgz", + "integrity": "sha512-UgQxI75bh183pSQkD4Qs7chmZwt+c5VXbyg2KruLS760E9RGiTv/41wSfP0FLetMO4gIFrqeQZ2O5xCo4x7A5Q==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-sdk-s3": "^3.972.64", + "@aws-sdk/middleware-sdk-s3": "^3.972.66", "tslib": "^2.6.2" }, "engines": { @@ -872,12 +872,12 @@ } }, "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.974.43", - "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.974.43.tgz", - "integrity": "sha512-KL6rttuu//off4XMq76E8xXOCPDHTlKvSOgXl5YEFAExDCZoRAgW/nKAfL4Jwt32bE1p99XP8Rjt7NHaqA0QnA==", + "version": "3.974.45", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.974.45.tgz", + "integrity": "sha512-IO897Trx628E8ei50LhFMJrEPFlD/wDUU6bWwB3lT5b9Zsfyu9cLeMytI1MBoJ+YSTCxq2QD0+J4xWsuJtHT8g==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/checksums": "^3.1000.18", + "@aws-sdk/checksums": "^3.1000.20", "tslib": "^2.6.2" }, "engines": { @@ -885,12 +885,12 @@ } }, "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.972.34", - "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.34.tgz", - "integrity": "sha512-NmaFH7Wvrh4SICPO7hRW7M8i+9OvjHxC155HHi/C3JwMUM9CSSXdOjtYhw1Q4cZAoKFnrcu9gIfWPE9seZY5Nw==", + "version": "3.972.36", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.36.tgz", + "integrity": "sha512-kSlRGn3MxuX1uhDxhJ/8GTr4MpTk2v7kIQt2LhVkeeFhD5i3wlLiX2gt8d0JDgLMN1HtZkLOubi8UCPGzM3vBw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.975.3", + "@aws-sdk/core": "^3.977.0", "tslib": "^2.6.2" }, "engines": { @@ -898,12 +898,12 @@ } }, "node_modules/@aws-sdk/middleware-location-constraint": { - "version": "3.972.30", - "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.972.30.tgz", - "integrity": "sha512-BdMsa14ZFFhcM5jvvE3fjiF33NE1RGXc+nRW+ifwIdmqJ48NAl/Waana9oVN/+XCGIztI7ZhMdJUTPi1VazjFQ==", + "version": "3.972.32", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.972.32.tgz", + "integrity": "sha512-ippL5rfvhjWSgTZ9p2l1Udl9SytObGuH8qgfhadLe/C8CLsHlZeWlcXJNdSE1bzurIbI5/G2xh+d8UF/aVC7gg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-sdk-s3": "^3.972.64", + "@aws-sdk/middleware-sdk-s3": "^3.972.66", "tslib": "^2.6.2" }, "engines": { @@ -911,12 +911,12 @@ } }, "node_modules/@aws-sdk/middleware-logger": { - "version": "3.972.33", - "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-logger/-/middleware-logger-3.972.33.tgz", - "integrity": "sha512-wnyJLhO66WsWMCo4TPDFQj1Pa3w4IbA0KDsjQIf1ComTyVPs/HxOmqlXMim5ZPXJQsrWvqRgfCe+vYaa/k39SA==", + "version": "3.972.35", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.972.35.tgz", + "integrity": "sha512-BkvJM6nyXE/bgtnN8GrByVBhyikgcUiY2AZ4ZEzPz2pbZlUoXbzOgsMy5kOCLSkGW5Va7B0G5dTPBxr7Q/vWkA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.975.3", + "@aws-sdk/core": "^3.977.0", "tslib": "^2.6.2" }, "engines": { @@ -924,12 +924,12 @@ } }, "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.972.35", - "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.35.tgz", - "integrity": "sha512-FEdTIfdyyVfMOYfcSEawLZt8ejRBlPoJ51YZOLBdVTBteH5SwLaiDmvAyVwSAhqiI1ooMesdGK0KOwlV+4FDgQ==", + "version": "3.972.37", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.37.tgz", + "integrity": "sha512-m5p1Jla6znQY360DcJK+ZjpCJIvbuhXzMEtD9yvBXju4R0NvQnE1GJE2slCerRUw5XAtdGC1k6EZEFhr/z/eEw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.975.3", + "@aws-sdk/core": "^3.977.0", "tslib": "^2.6.2" }, "engines": { @@ -937,15 +937,15 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.972.64", - "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.64.tgz", - "integrity": "sha512-RBi43anhDBUv+HCfxCOXwGOE7GmT4n7ChV04Mwr22RhXTNcamW/iWnJlOotDPCZSrJ4dEvhZSiWWQMwLX+ZhFA==", + "version": "3.972.66", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.66.tgz", + "integrity": "sha512-sTZKP1+SvyzWc/3alO8AM/PUiEzDCmn2P/KOcFFSk2UKzKZkB5ZxXdlHVtACE7DHaMFvx6DY0bognwHa1qTv4g==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.975.3", - "@aws-sdk/signature-v4-multi-region": "^3.996.41", + "@aws-sdk/core": "^3.977.0", + "@aws-sdk/signature-v4-multi-region": "^3.996.42", "@aws-sdk/types": "^3.974.2", - "@smithy/core": "^3.29.4", + "@smithy/core": "^3.29.8", "@smithy/types": "^4.16.1", "tslib": "^2.6.2" }, @@ -954,13 +954,13 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.996.41", - "resolved": "https://registry.npmmirror.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.41.tgz", - "integrity": "sha512-QMUytg+FQMGouc8gHS00KoYih3+N6cqmVI/pQGOIo7Nr7OpQaiXjSYOuL+vsPZ1tymY4LAQ8MYcHJmws5LRxng==", + "version": "3.996.42", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.42.tgz", + "integrity": "sha512-DBV4naZP6HYBlAvPpoQzOP12Wvfou/5rN8yJPXjBTBylU5qwCbh/tXr2MddHoIjgoRkEl/eS+IljiUqvmwey1Q==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.974.2", - "@smithy/signature-v4": "^5.6.5", + "@smithy/signature-v4": "^5.6.9", "@smithy/types": "^4.16.1", "tslib": "^2.6.2" }, @@ -969,13 +969,13 @@ } }, "node_modules/@aws-sdk/middleware-sdk-sqs": { - "version": "3.972.37", - "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-sdk-sqs/-/middleware-sdk-sqs-3.972.37.tgz", - "integrity": "sha512-ObKPWZWpog+4zZQ2q+LdBwf/nm+HF2afgBxCtyHeqjRlsnATuKOV3dPYnzCGyjRZ/RHTEre4LRrYRcIxlWhzVQ==", + "version": "3.972.38", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sqs/-/middleware-sdk-sqs-3.972.38.tgz", + "integrity": "sha512-izM6iWpd/s50WMcYOjLJfWm7McNiJKeit/NNUQ4JQIU0rBmNPMvf7AsJN7tk28N+afPYbpPIUSE3BNWZwtwf8w==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.974.2", - "@smithy/core": "^3.29.4", + "@smithy/core": "^3.29.8", "@smithy/types": "^4.16.1", "tslib": "^2.6.2" }, @@ -984,12 +984,12 @@ } }, "node_modules/@aws-sdk/middleware-ssec": { - "version": "3.972.30", - "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.972.30.tgz", - "integrity": "sha512-SUSBtsnbtX519Z67vvdGAi5elvKXBmOR0RSxl9pm1jFXNMR2Lnkc23Whv9cGv5OwekeIJROxT+g1B9AUPDos9Q==", + "version": "3.972.32", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.972.32.tgz", + "integrity": "sha512-Rw/ipJm+VEP2pAKz+nuIlzEO/8eqldABfcTDdxKju2ojE5SaeWYUolDxLHwqQ2qV0GQl6HI03red2cKdl91Q1w==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-sdk-s3": "^3.972.64", + "@aws-sdk/middleware-sdk-s3": "^3.972.66", "tslib": "^2.6.2" }, "engines": { @@ -997,12 +997,12 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.972.63", - "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.63.tgz", - "integrity": "sha512-ciBdN5V+RjFX2oLXmxqdVbKfADSYIZb4UTFv0eZ2mD9DwARaeSKW9UI9qfX9hJrRjbmYIYtdbMPqFla20x8ZOA==", + "version": "3.972.65", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.65.tgz", + "integrity": "sha512-2xGhqhqhDSxH8GmUfQ2JzQSKyHeu3Fhj3SNcpvkAO5TR0FWV5mxcWQWtsNuDZI8ZIYJVxEDZiJYObHRE329BYA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.975.3", + "@aws-sdk/core": "^3.977.0", "tslib": "^2.6.2" }, "engines": { @@ -1010,17 +1010,17 @@ } }, "node_modules/@aws-sdk/nested-clients": { - "version": "3.997.33", - "resolved": "https://registry.npmmirror.com/@aws-sdk/nested-clients/-/nested-clients-3.997.33.tgz", - "integrity": "sha512-dVZOroI/r3/ENvqNGgjMPul+jjlz9GddfVusgTXlVjfZj5isibOxecLkGQbRPp8XOuX+RAfjXLFgPkD1JS5xrw==", + "version": "3.997.35", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.35.tgz", + "integrity": "sha512-2MJfseVG/aXvIyOIBlYA/Oaf6qFDdsu4D8RKsEUdOQpVuLaor0BdxIBBtJLBNQQEe6Ku3YMvLljwb1MwVUpzRw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.975.3", - "@aws-sdk/signature-v4-multi-region": "^3.996.41", + "@aws-sdk/core": "^3.977.0", + "@aws-sdk/signature-v4-multi-region": "^3.996.42", "@aws-sdk/types": "^3.974.2", - "@smithy/core": "^3.29.4", - "@smithy/fetch-http-handler": "^5.6.6", - "@smithy/node-http-handler": "^4.9.6", + "@smithy/core": "^3.29.8", + "@smithy/fetch-http-handler": "^5.6.10", + "@smithy/node-http-handler": "^4.9.10", "@smithy/types": "^4.16.1", "tslib": "^2.6.2" }, @@ -1029,13 +1029,13 @@ } }, "node_modules/@aws-sdk/nested-clients/node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.996.41", - "resolved": "https://registry.npmmirror.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.41.tgz", - "integrity": "sha512-QMUytg+FQMGouc8gHS00KoYih3+N6cqmVI/pQGOIo7Nr7OpQaiXjSYOuL+vsPZ1tymY4LAQ8MYcHJmws5LRxng==", + "version": "3.996.42", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.42.tgz", + "integrity": "sha512-DBV4naZP6HYBlAvPpoQzOP12Wvfou/5rN8yJPXjBTBylU5qwCbh/tXr2MddHoIjgoRkEl/eS+IljiUqvmwey1Q==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.974.2", - "@smithy/signature-v4": "^5.6.5", + "@smithy/signature-v4": "^5.6.9", "@smithy/types": "^4.16.1", "tslib": "^2.6.2" }, @@ -1044,12 +1044,12 @@ } }, "node_modules/@aws-sdk/region-config-resolver": { - "version": "3.972.37", - "resolved": "https://registry.npmmirror.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.37.tgz", - "integrity": "sha512-O0mWXYkM1ASgX72KKW3zNG+pEvpmUG5yl6uykgA/p2xkVFi/SjUxwAZBv2ToqKba/TBwDU8tv2wL5Rq5ZTcdMg==", + "version": "3.972.39", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.39.tgz", + "integrity": "sha512-tWAz89hmdikIkgF8zf1qlynHOFDj8zVWDseFG5ayTKcPZC/RblPdsijWqSwdaFjjXoJdxLQybnt5djlGRXckNw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.975.3", + "@aws-sdk/core": "^3.977.0", "tslib": "^2.6.2" }, "engines": { @@ -1058,7 +1058,7 @@ }, "node_modules/@aws-sdk/signature-v4-multi-region": { "version": "3.984.0", - "resolved": "https://registry.npmmirror.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.984.0.tgz", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.984.0.tgz", "integrity": "sha512-TaWbfYCwnuOSvDSrgs7QgoaoXse49E7LzUkVOUhoezwB7bkmhp+iojADm7UepCEu4021SquD7NG1xA+WCvmldA==", "license": "Apache-2.0", "dependencies": { @@ -1074,15 +1074,15 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.1088.0", - "resolved": "https://registry.npmmirror.com/@aws-sdk/token-providers/-/token-providers-3.1088.0.tgz", - "integrity": "sha512-4ObatWt2qpJg5FBk4LOOKrTQYzaqeewAtdO3r9ZO8lH9YqLtpTzLyIdy0mJ+nVdfYOnqISkKNfmzP22bNDhwyw==", + "version": "3.1095.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1095.0.tgz", + "integrity": "sha512-65SudS6y4nzaYHybtqcpm3sHe5jLhdMn68HRKS1nUx690BtQeaAQOoujQ+dpOjBATIVGVgKKjEP8tR+U06QJQA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.975.3", - "@aws-sdk/nested-clients": "^3.997.33", + "@aws-sdk/core": "^3.977.0", + "@aws-sdk/nested-clients": "^3.997.35", "@aws-sdk/types": "^3.974.2", - "@smithy/core": "^3.29.4", + "@smithy/core": "^3.29.8", "@smithy/types": "^4.16.1", "tslib": "^2.6.2" }, @@ -1092,7 +1092,7 @@ }, "node_modules/@aws-sdk/types": { "version": "3.974.2", - "resolved": "https://registry.npmmirror.com/@aws-sdk/types/-/types-3.974.2.tgz", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.974.2.tgz", "integrity": "sha512-3W6IUtSxFbH6X7Wb7DzGCV5QiFQsd0g8bOfntpmDxQlzBoKWUMBu/JPQR0DwkE+Hpnxd6db1tXbOwdeHddG6cA==", "license": "Apache-2.0", "dependencies": { @@ -1105,7 +1105,7 @@ }, "node_modules/@aws-sdk/util-endpoints": { "version": "3.984.0", - "resolved": "https://registry.npmmirror.com/@aws-sdk/util-endpoints/-/util-endpoints-3.984.0.tgz", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.984.0.tgz", "integrity": "sha512-9ebjLA0hMKHeVvXEtTDCCOBtwjb0bOXiuUV06HNeVdgAjH6gj4x4Zwt4IBti83TiyTGOCl5YfZqGx4ehVsasbQ==", "license": "Apache-2.0", "dependencies": { @@ -1121,7 +1121,7 @@ }, "node_modules/@aws-sdk/util-locate-window": { "version": "3.965.8", - "resolved": "https://registry.npmmirror.com/@aws-sdk/util-locate-window/-/util-locate-window-3.965.8.tgz", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.965.8.tgz", "integrity": "sha512-uUbMs1cBZPafD0ohUj6EwNf0fPZ534NvBxHox4hjX+0Rxq5paSYUem7+hi833pYrzrcnBATKIYpR02MDXT5M9g==", "license": "Apache-2.0", "dependencies": { @@ -1132,22 +1132,22 @@ } }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.972.34", - "resolved": "https://registry.npmmirror.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.34.tgz", - "integrity": "sha512-QkoA/jvhG6GDeghtIOcsuSQKqMwt75waXVjlf0WIkUhaNE1f/GrZ+/p/01yWI9cJdmO4T4YjyB/ZRdcvU1ToZw==", + "version": "3.972.36", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.36.tgz", + "integrity": "sha512-8at92FaMD2LDL47sOc8vDgC46C81xD6co1n3ajBIiqiVxthz2gdSYGcmGQFfU6vdyVBeTWqsMLshKPfnk7leRA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.975.3", + "@aws-sdk/core": "^3.977.0", "tslib": "^2.6.2" } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.973.49", - "resolved": "https://registry.npmmirror.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.973.49.tgz", - "integrity": "sha512-gZyJ3fmVq9RONzxk9BYeq1ZRc7d+ZLsytswREgaNTclvBQ7GTm4jlXMEhOTE5g1Ce9rhfWSHmm9xOwldHqtoDQ==", + "version": "3.973.51", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.973.51.tgz", + "integrity": "sha512-/LgmwdHDIXkW/Zdz//B55IFW5KO9hDeZm+EsdYAfNYRaCa7CCppAOupRaZNvlGJ1Z2tPMuk/gT28gpLfV80xxQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.975.3", + "@aws-sdk/core": "^3.977.0", "tslib": "^2.6.2" }, "engines": { @@ -1155,9 +1155,9 @@ } }, "node_modules/@aws-sdk/xml-builder": { - "version": "3.972.36", - "resolved": "https://registry.npmmirror.com/@aws-sdk/xml-builder/-/xml-builder-3.972.36.tgz", - "integrity": "sha512-RdGmS1GLrtaTOLE1ElSluMldNrpk9Emq6uYs8SS8iHlu5xTAmM9rRkM91o48+rIRryBtyO9t+uLYCoMG6jVMVA==", + "version": "3.972.37", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.37.tgz", + "integrity": "sha512-zKq4HQum8JwDyEuyfuI4bbiAcU0KxP6qy+9PR/IsR92IyE/DaBAikzAS50tjxip4bqIIANpCcG+Yyj6CVhXupg==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.16.1", @@ -1169,7 +1169,7 @@ }, "node_modules/@aws/lambda-invoke-store": { "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/@aws/lambda-invoke-store/-/lambda-invoke-store-0.3.0.tgz", + "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.3.0.tgz", "integrity": "sha512-sl4Bm6yiMNYrZKkqqDFWN0UfnWhlS8ivKxrYl+6t0gCLrqr8y3B2IqZZbFRkfaVVp7C/baApyh71P+LeE1A2sQ==", "license": "Apache-2.0", "engines": { @@ -1377,9 +1377,9 @@ } }, "node_modules/@cloudflare/workerd-darwin-64": { - "version": "1.20260714.1", - "resolved": "https://registry.npmmirror.com/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20260714.1.tgz", - "integrity": "sha512-ZWXqAN8G7Cx9hMRQuk+59ziJhR3j1F4iO+Qs8aHdfKZ3Dq5Yi/57xvkJTgCGBnW1YU/L78r8f6HEy51bwbTpNw==", + "version": "1.20260722.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20260722.1.tgz", + "integrity": "sha512-vZOP8vIS3NwnuaO+gz0FZ7kIGeiO3bZmxV35Ph9zOXKSREhDFlH7wQ7mkCdhW3O4jnXsew+XT7b+DNEI2CcJGQ==", "cpu": [ "x64" ], @@ -1393,9 +1393,9 @@ } }, "node_modules/@cloudflare/workerd-darwin-arm64": { - "version": "1.20260714.1", - "resolved": "https://registry.npmmirror.com/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20260714.1.tgz", - "integrity": "sha512-tueWxWC3wyCbMG6zRAxsMXX0YLgrRWbiAPYFQ2uJ7dUH8G+5E7UTWaQS9B1HdJ0bpKFW1NWxhs1o2noKVFSUYg==", + "version": "1.20260722.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20260722.1.tgz", + "integrity": "sha512-EmIQymihDq6WNdER4+LF8Qn80yqayBUpJ+tkOO7wmY8pmgfyXjIUFNXotl21AHovTeu2seR7HdVUgeN/BilCWw==", "cpu": [ "arm64" ], @@ -1409,9 +1409,9 @@ } }, "node_modules/@cloudflare/workerd-linux-64": { - "version": "1.20260714.1", - "resolved": "https://registry.npmmirror.com/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20260714.1.tgz", - "integrity": "sha512-1VChTZRb0l0F7R4e1G5RtLKV4oFi6x+rQgxh2+yu887j3l/3TLgatuv1L8/5zhc9gKEhATTxOh0e52Rtd9dDWQ==", + "version": "1.20260722.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20260722.1.tgz", + "integrity": "sha512-jvZ3k9fxcnEn04s80CgIYxQfpOyAiz/8qC42DP8EBa9tR27qWyg9wmm31zIobVlrgBZn/+8NfdP73avRGcQOjQ==", "cpu": [ "x64" ], @@ -1425,9 +1425,9 @@ } }, "node_modules/@cloudflare/workerd-linux-arm64": { - "version": "1.20260714.1", - "resolved": "https://registry.npmmirror.com/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20260714.1.tgz", - "integrity": "sha512-rMm3G+NirG2UdgHIRDdF1asNC6FqgIzZzkRG+VDhhDGcVxAQwvrMT1E38BivEvHr3G04MB4AfhcOczX0+GtRkQ==", + "version": "1.20260722.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20260722.1.tgz", + "integrity": "sha512-BOSB55SMNdy+DA5uj2WirgiNanpHGis5PVvXH1wSfvjRKr4JGgWK+EZzxz0RFUo6QjjQQC/NimEzNZ7va7jmKg==", "cpu": [ "arm64" ], @@ -1441,9 +1441,9 @@ } }, "node_modules/@cloudflare/workerd-windows-64": { - "version": "1.20260714.1", - "resolved": "https://registry.npmmirror.com/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20260714.1.tgz", - "integrity": "sha512-cGqnU3Hg2YZS/k3SAqrMp1DjpdsyFde72tWltdl6ZT9+SFz/Zrk/8gyTU1TcxC4YApXeNVH5TyU5cOGPgUJ0pg==", + "version": "1.20260722.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20260722.1.tgz", + "integrity": "sha512-sYM8YgUpKnRz2xjvdJLX1Ojzoi4MlA4gk8WTTExhGydjYB2UTs5NIbv0ZmpKgMoK9io3ixgmiW56ZnTbcWOdiA==", "cpu": [ "x64" ], @@ -2126,7 +2126,7 @@ }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", - "resolved": "https://registry.npmmirror.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "license": "MIT", "dependencies": { @@ -2138,7 +2138,7 @@ }, "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", - "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "license": "MIT", "dependencies": { @@ -2229,7 +2229,7 @@ }, "node_modules/@esbuild/aix-ppc64": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", "cpu": [ "ppc64" @@ -2245,7 +2245,7 @@ }, "node_modules/@esbuild/android-arm": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", "cpu": [ "arm" @@ -2261,7 +2261,7 @@ }, "node_modules/@esbuild/android-arm64": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", "cpu": [ "arm64" @@ -2277,7 +2277,7 @@ }, "node_modules/@esbuild/android-x64": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", "cpu": [ "x64" @@ -2293,7 +2293,7 @@ }, "node_modules/@esbuild/darwin-arm64": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", "cpu": [ "arm64" @@ -2309,7 +2309,7 @@ }, "node_modules/@esbuild/darwin-x64": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", "cpu": [ "x64" @@ -2325,7 +2325,7 @@ }, "node_modules/@esbuild/freebsd-arm64": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", "cpu": [ "arm64" @@ -2341,7 +2341,7 @@ }, "node_modules/@esbuild/freebsd-x64": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", "cpu": [ "x64" @@ -2357,7 +2357,7 @@ }, "node_modules/@esbuild/linux-arm": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", "cpu": [ "arm" @@ -2373,7 +2373,7 @@ }, "node_modules/@esbuild/linux-arm64": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", "cpu": [ "arm64" @@ -2389,7 +2389,7 @@ }, "node_modules/@esbuild/linux-ia32": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", "cpu": [ "ia32" @@ -2405,7 +2405,7 @@ }, "node_modules/@esbuild/linux-loong64": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", "cpu": [ "loong64" @@ -2421,7 +2421,7 @@ }, "node_modules/@esbuild/linux-mips64el": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", "cpu": [ "mips64el" @@ -2437,7 +2437,7 @@ }, "node_modules/@esbuild/linux-ppc64": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", "cpu": [ "ppc64" @@ -2453,7 +2453,7 @@ }, "node_modules/@esbuild/linux-riscv64": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", "cpu": [ "riscv64" @@ -2469,7 +2469,7 @@ }, "node_modules/@esbuild/linux-s390x": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", "cpu": [ "s390x" @@ -2485,7 +2485,7 @@ }, "node_modules/@esbuild/linux-x64": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", "cpu": [ "x64" @@ -2501,7 +2501,7 @@ }, "node_modules/@esbuild/netbsd-arm64": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", "cpu": [ "arm64" @@ -2517,7 +2517,7 @@ }, "node_modules/@esbuild/netbsd-x64": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", "cpu": [ "x64" @@ -2533,7 +2533,7 @@ }, "node_modules/@esbuild/openbsd-arm64": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", "cpu": [ "arm64" @@ -2549,7 +2549,7 @@ }, "node_modules/@esbuild/openbsd-x64": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", "cpu": [ "x64" @@ -2581,7 +2581,7 @@ }, "node_modules/@esbuild/sunos-x64": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", "cpu": [ "x64" @@ -2597,7 +2597,7 @@ }, "node_modules/@esbuild/win32-arm64": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", "cpu": [ "arm64" @@ -2613,7 +2613,7 @@ }, "node_modules/@esbuild/win32-ia32": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", "cpu": [ "ia32" @@ -2629,7 +2629,7 @@ }, "node_modules/@esbuild/win32-x64": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", "cpu": [ "x64" @@ -2689,65 +2689,39 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", - "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", + "version": "0.23.5", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz", + "integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@eslint/object-schema": "^2.1.7", + "@eslint/object-schema": "^3.0.5", "debug": "^4.3.1", - "minimatch": "^3.1.2" + "minimatch": "^10.2.4" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/config-array/node_modules/brace-expansion": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.16.tgz", - "integrity": "sha512-IDw48K2/2kRkg9LdJxurvq3lV3aBgq0REY89duEqFRthjlPdXHKMj7EnQOXVckxzgisinf3nHfrcE2FufFLXMw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/config-array/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, "node_modules/@eslint/config-helpers": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", - "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.7.0.tgz", + "integrity": "sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@eslint/core": "^0.17.0" + "@eslint/core": "^1.2.1" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, "node_modules/@eslint/core": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", - "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz", + "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -2755,124 +2729,33 @@ "@types/json-schema": "^7.0.15" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", - "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.1", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", - "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.16.tgz", - "integrity": "sha512-IDw48K2/2kRkg9LdJxurvq3lV3aBgq0REY89duEqFRthjlPdXHKMj7EnQOXVckxzgisinf3nHfrcE2FufFLXMw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/js": { - "version": "9.39.2", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", - "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, "node_modules/@eslint/object-schema": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", - "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz", + "integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==", "dev": true, "license": "Apache-2.0", "peer": true, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, "node_modules/@eslint/plugin-kit": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", - "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.2.tgz", + "integrity": "sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@eslint/core": "^0.17.0", + "@eslint/core": "^1.2.1", "levn": "^0.4.1" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, "node_modules/@formatjs/fast-memoize": { @@ -2962,18 +2845,18 @@ } }, "node_modules/@img/colour": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz", - "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@img/sharp-darwin-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", - "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "version": "0.35.2", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.2.tgz", + "integrity": "sha512-eEieHsMksAW4IiO5NzauESRl2D2qz3J/kwUxUrSfV06A93eEaRfMpHXyUb1mAqrR7i8U9A0GRqE9pjn6u1Jjpg==", "cpu": [ "arm64" ], @@ -2983,19 +2866,19 @@ "darwin" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.2.4" + "@img/sharp-libvips-darwin-arm64": "1.3.1" } }, "node_modules/@img/sharp-darwin-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", - "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", + "version": "0.35.2", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.2.tgz", + "integrity": "sha512-BaktuGPCeHJMARpodR8jK4uKiZrPAy9WrfQW0sdI37clracq8Bp01AYS3SZgi5FS/y5twa9t4+LIuuxQjqRrWw==", "cpu": [ "x64" ], @@ -3005,19 +2888,54 @@ "darwin" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.2.4" + "@img/sharp-libvips-darwin-x64": "1.3.1" + } + }, + "node_modules/@img/sharp-freebsd-wasm32": { + "version": "0.35.2", + "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.2.tgz", + "integrity": "sha512-YoAxdnd8hPUkvLHd3bWY+YA8nw3xM/RyRopYucNsWHVSan8NLVM3X2volsfoRDcXdUJPg6tXahSd7HXPK7lRnw==", + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "dependencies": { + "@img/sharp-wasm32": "0.35.2" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-freebsd-wasm32/node_modules/@img/sharp-wasm32": { + "version": "0.35.2", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.2.tgz", + "integrity": "sha512-Mrv4JQNYVQ94xH+jzZ9r+gowleN8mv2FTgKT+PI6bx5C0G8TdNYndu161pg2i7uoBwxy2ImPMHrJOM2LZef7Bw==", + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.11.1" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", - "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.1.tgz", + "integrity": "sha512-4V/M3roRMTYjiwZY9IOVQOE8OyeCxFAkYmyZDrZl51uOKjibm3oeEJ4WAmLxutAfzFbC9jqUiPs2gbnGflH+7g==", "cpu": [ "arm64" ], @@ -3031,9 +2949,9 @@ } }, "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", - "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.1.tgz", + "integrity": "sha512-c0/DxItpJv2+dGhgycJBBgotdqruGYDvA79drdh0MD1dFpy7JzJ/PlXwi1H4rFf0eTy8tgbI91aHDnZIceY3jQ==", "cpu": [ "x64" ], @@ -3047,9 +2965,9 @@ } }, "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", - "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.1.tgz", + "integrity": "sha512-aGGy9aWzXgHBG7HNyQPWorZthlp7+x6fDRoPAQbGO3ThcttuTyKIx3NuSHb6zb4gBNq6/yNn9f1cy9nFKS/Vmg==", "cpu": [ "arm" ], @@ -3063,9 +2981,9 @@ } }, "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", - "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.1.tgz", + "integrity": "sha512-JznefmcK9j1JKPz8AkQDh89kjojubyfOasWBPKfzMIhPwsgDy9evpE/naJTXXXmghS1iFwR8u/kTwh/I2/+GCw==", "cpu": [ "arm64" ], @@ -3079,9 +2997,9 @@ } }, "node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", - "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.1.tgz", + "integrity": "sha512-1EkwGNCZk6iWNCMWqrvdJ+r1j0PT1zIz60CNPhYnJlK/zyeWqlsPZIe+ocBVqPF8k/Ssee/NCk+tE9Ryrko6ng==", "cpu": [ "ppc64" ], @@ -3095,9 +3013,9 @@ } }, "node_modules/@img/sharp-libvips-linux-riscv64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", - "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.1.tgz", + "integrity": "sha512-Ilays+w2bXdnxzxtQdmXR62u8o8GYa3eL4+Gr+1KiE4xperMZUslRaVPJwwPkzlHEjGfXAfRVAa/7CYCtSqsBw==", "cpu": [ "riscv64" ], @@ -3111,9 +3029,9 @@ } }, "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", - "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.1.tgz", + "integrity": "sha512-VfBwVHQTbRoj4XlpA/KLZ7ltgMpz+4WSejFzQ+GnoImjo1PtEJ59QB2qR1xQEeRPYIkNrPIm2L4cICMvz4C2ew==", "cpu": [ "s390x" ], @@ -3127,9 +3045,9 @@ } }, "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", - "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.1.tgz", + "integrity": "sha512-+c8ukgwU62DS54nCAjw7keOfHUkmr0B5QHEdcOqRnodF/MNXJbVI8Eopoj4B/0H8Asr65I+A4Amrn7a85/md6A==", "cpu": [ "x64" ], @@ -3143,9 +3061,9 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", - "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.1.tgz", + "integrity": "sha512-qlKb/pwbkAi1WMsJrYHk7CuDrd12s27U2QnRhFYUoJNrRCmkosMTttuRFat/DDB3IlDm5qE1TJgZ4JDnHX8Ldw==", "cpu": [ "arm64" ], @@ -3159,9 +3077,9 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", - "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.1.tgz", + "integrity": "sha512-yO21HwoUVLN8Qa+/SBjQLMYwBWAVJjeGPNe+hc0OUeMeifEtJqu5a1c4HayE1nNpDih9y3/KkoltfkDodmKAlg==", "cpu": [ "x64" ], @@ -3175,9 +3093,9 @@ } }, "node_modules/@img/sharp-linux-arm": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", - "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", + "version": "0.35.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.2.tgz", + "integrity": "sha512-SE4kzF2mepn6z+6E7L6lsV8FzuLL6IPQdyX8ZiwROAG/G8td+hP/m7FsFPwidtrF19gvajuC9l6TxAVcsA4S7A==", "cpu": [ "arm" ], @@ -3187,19 +3105,19 @@ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.2.4" + "@img/sharp-libvips-linux-arm": "1.3.1" } }, "node_modules/@img/sharp-linux-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", - "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", + "version": "0.35.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.2.tgz", + "integrity": "sha512-af12Pnd0ZGu2HfP8NayB0kk6eC/lrfbQE6HlR4jD+34wdJ1Vw9TF6TMn6ZvffT+WgqVsl0hRbmNvz2u/23VmwA==", "cpu": [ "arm64" ], @@ -3209,19 +3127,19 @@ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.2.4" + "@img/sharp-libvips-linux-arm64": "1.3.1" } }, "node_modules/@img/sharp-linux-ppc64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", - "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "version": "0.35.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.2.tgz", + "integrity": "sha512-hYSBm7zcNtDCozCxQHYZJiu63b/bXsgRZuOxCIBZsStMM9Vap47iFHdbX4kCvQsblPB/k+clhELpdQJHQLSHvg==", "cpu": [ "ppc64" ], @@ -3231,19 +3149,19 @@ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-ppc64": "1.2.4" + "@img/sharp-libvips-linux-ppc64": "1.3.1" } }, "node_modules/@img/sharp-linux-riscv64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", - "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "version": "0.35.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.2.tgz", + "integrity": "sha512-qQt0Kc13+Hoan/Awq/qMSQw3L+RI1NCRPgD5cUJ/1WSSmIoysLOc72jlRM3E0OHN9Yr313jgeQ2T+zW+F03QFA==", "cpu": [ "riscv64" ], @@ -3253,19 +3171,19 @@ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-riscv64": "1.2.4" + "@img/sharp-libvips-linux-riscv64": "1.3.1" } }, "node_modules/@img/sharp-linux-s390x": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", - "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", + "version": "0.35.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.2.tgz", + "integrity": "sha512-E4fLLfRPzDLlEeDaTzI98OFLcv++WL5ChLLMwPoVd0CIoZQqupBSNbOisPL5am9XsbQ9T84+iiMpUvbFtkunbA==", "cpu": [ "s390x" ], @@ -3275,19 +3193,19 @@ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.2.4" + "@img/sharp-libvips-linux-s390x": "1.3.1" } }, "node_modules/@img/sharp-linux-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", - "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", + "version": "0.35.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.2.tgz", + "integrity": "sha512-gi0zFJJRLswfCZmHtJdikXPOc5u7qamSOS3NHedLqLd4W8Q0NqjdBr6TTRIgsfFjqfTsHFgdfvJ9LwqSgcHiAA==", "cpu": [ "x64" ], @@ -3297,19 +3215,19 @@ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.2.4" + "@img/sharp-libvips-linux-x64": "1.3.1" } }, "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", - "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", + "version": "0.35.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.2.tgz", + "integrity": "sha512-siWbOW1u6HFnFLrp0waKyW7VEf7jYvcDWdrXEFa8AkdAQgEvuu5Fz8/Y70w9EeqAdwDtfU012BhEHHaDqvQNzg==", "cpu": [ "arm64" ], @@ -3319,19 +3237,19 @@ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + "@img/sharp-libvips-linuxmusl-arm64": "1.3.1" } }, "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", - "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", + "version": "0.35.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.2.tgz", + "integrity": "sha512-YBqMMcjDi4QGYiSn4vNOYBhmlC4z5AXqkOUUqI2e0AFA4urNv4ESgOgwNl3K+4etQhha0twXlzeF20bbULm9Yg==", "cpu": [ "x64" ], @@ -3341,38 +3259,54 @@ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + "@img/sharp-libvips-linuxmusl-x64": "1.3.1" } }, - "node_modules/@img/sharp-wasm32": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", - "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", + "node_modules/@img/sharp-webcontainers-wasm32": { + "version": "0.35.2", + "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.2.tgz", + "integrity": "sha512-QNV27pxs9wpApEiCfvHM1RDoP1w1+2KrUWWDPEhEwg+latvOrfuhWrHWZKwdSFwU6jh3myjw/yOCRsUIuOft3g==", "cpu": [ "wasm32" ], + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@img/sharp-wasm32": "0.35.2" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-webcontainers-wasm32/node_modules/@img/sharp-wasm32": { + "version": "0.35.2", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.2.tgz", + "integrity": "sha512-Mrv4JQNYVQ94xH+jzZ9r+gowleN8mv2FTgKT+PI6bx5C0G8TdNYndu161pg2i7uoBwxy2ImPMHrJOM2LZef7Bw==", "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", "optional": true, "dependencies": { - "@emnapi/runtime": "^1.7.0" + "@emnapi/runtime": "^1.11.1" }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-win32-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", - "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", + "version": "0.35.2", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.2.tgz", + "integrity": "sha512-BiVRYc/t6/Vl3e1hBx0hugG4oN9Pydf4fgMSpxTQJmwGUg/YoXTWHiFeRymHfCZzifxu4F4rpk/I67D0LQ20wQ==", "cpu": [ "arm64" ], @@ -3382,16 +3316,16 @@ "win32" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-win32-ia32": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", - "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", + "version": "0.35.2", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.2.tgz", + "integrity": "sha512-YYEhx9PImCC7T0tI8JDMi4DB9LwLCXCU5OWNYEXAxh5Q1ShKkyC6byxzoBJ3gEFDnH2lQckWuDe70G7mB2XJog==", "cpu": [ "ia32" ], @@ -3401,16 +3335,16 @@ "win32" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": "^20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-win32-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", - "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", + "version": "0.35.2", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.2.tgz", + "integrity": "sha512-imoOyBcoM/iiUr4J6VPpCNjPnjvP/Gks95898yB8YqoGGYmHYbOyCuNv9FMhFgtaiHFGbHW8bxKqRV6VjtXThQ==", "cpu": [ "x64" ], @@ -3420,7 +3354,7 @@ "win32" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" @@ -3622,9 +3556,9 @@ } }, "node_modules/@next/env": { - "version": "16.2.10", - "resolved": "https://registry.npmmirror.com/@next/env/-/env-16.2.10.tgz", - "integrity": "sha512-zLPxg9M0MEHmygpj5OuxjQ+vHMiy/K7cSp74G8ecYolmgUWw0RwN02tF56npup/+qaI8JB97hQgS/r2Hb6QwVA==", + "version": "16.2.12", + "resolved": "https://registry.npmjs.org/@next/env/-/env-16.2.12.tgz", + "integrity": "sha512-d0Z5Bc13Fa4nR8pFAKx2jay2yhJM16vlfHbTzYnUQAxlNb6B6lmn4hjt69lYNt4kRtyYP6gEM49lPRHNbIyneg==", "license": "MIT" }, "node_modules/@next/mdx": { @@ -3650,9 +3584,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "16.2.10", - "resolved": "https://registry.npmmirror.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.2.10.tgz", - "integrity": "sha512-v9IdJCa0H0mbo+8z5zwUpOk1Vj7RjkcI5uNYf5Ws1y6szf/p3Mzl9hLaST8SCt6L9h8NGnruZcd2+o0NTNwDhA==", + "version": "16.2.12", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.2.12.tgz", + "integrity": "sha512-0W1R0teHWJrqKX0FH20IzzIWAOuGtBxPGuObrxy1lE8hQvCFj49KE8a3WUg0D7sq6rn6zkM4c7YGUnhudBS6oA==", "cpu": [ "arm64" ], @@ -3666,9 +3600,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "16.2.10", - "resolved": "https://registry.npmmirror.com/@next/swc-darwin-x64/-/swc-darwin-x64-16.2.10.tgz", - "integrity": "sha512-17IS0jJRViROGmA9uGdNR8VPJpfbnaVG7E9qhso5jDLkmyd0lSDORWxbcKINzcFqzZqGwGtMSnrFRxBpuUYjLQ==", + "version": "16.2.12", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.2.12.tgz", + "integrity": "sha512-Hy5Ls099+aFUmOLmIgPfLqNi6iCwhL3uQCssz5rWk+5Nkc6TUKCE83DY5BbNylfm3+mfwcSFnLRfrZDJhVxdtw==", "cpu": [ "x64" ], @@ -3682,9 +3616,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "16.2.10", - "resolved": "https://registry.npmmirror.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.2.10.tgz", - "integrity": "sha512-GRQRsRtuciNJvB54AvvuQTiq0oZtFwa1owQqtZD8wwnGpM2L39MV22kpI72YSXLKIyY40LC66EiLFv4PiicXxg==", + "version": "16.2.12", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.2.12.tgz", + "integrity": "sha512-+YqU2h1cQkHsGfvjAsrSmst8UIFBibBGm5x3Xgel8NLMiDQtNOM4sM2GOEMvG5YiOBNeN/Ykk8cQC2S0Xrqljg==", "cpu": [ "arm64" ], @@ -3698,9 +3632,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "16.2.10", - "resolved": "https://registry.npmmirror.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.2.10.tgz", - "integrity": "sha512-zkN9MQYS7UQBro+FnISUq1itaQjXI9xqISzuQ+2bc921NcJ1x4yPCqrn77tVN6/dOOXaaWVX3k6/bR07pPwK+A==", + "version": "16.2.12", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.2.12.tgz", + "integrity": "sha512-0qjhiYBaKAqF63LA1ZWAAnKTzFUguAaZiRa5etMLGGPj/B6uEVjtIZldIzFEp3wHlB0koK6aTzqPtSdplTCjoA==", "cpu": [ "arm64" ], @@ -3714,9 +3648,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "16.2.10", - "resolved": "https://registry.npmmirror.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.2.10.tgz", - "integrity": "sha512-iCVJnwvrPYECvA6WM/7+oo+OiTvedIKLxtCLAZP4xZR3nXa1zmzZyLPbYCmWvpd4CvMYF1EMTafd0ii3DygLvA==", + "version": "16.2.12", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.2.12.tgz", + "integrity": "sha512-7A3q26W+h7gnA15uqBToNuDqBEFZZcqh0mW2mn4AJh/G5pdg2RVE3n4slzLEliASZFG3NmsbEzng/x2Sh09mBg==", "cpu": [ "x64" ], @@ -3730,9 +3664,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "16.2.10", - "resolved": "https://registry.npmmirror.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.2.10.tgz", - "integrity": "sha512-ov2g4H0dHY9bPoOU83m91hWT7Iq5qy13bUnyyshLU3HGR1Ownn0X9QpmDPc5iIUaahTp7f7LeGAhV4DSFtackw==", + "version": "16.2.12", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.2.12.tgz", + "integrity": "sha512-qSjL/uppm+cbh21s72Ss8gkiOhQ4dExWHNGOWy6eZV7STj5WsKehgxT61beSsOj+YYQuTplL376lOCdMQU5T8w==", "cpu": [ "x64" ], @@ -3746,9 +3680,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "16.2.10", - "resolved": "https://registry.npmmirror.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.2.10.tgz", - "integrity": "sha512-DwAnhLX76HQiFFQNgWlcK+JzlnD1rZ+UK/WY0ZMI/deXpvgnesjNYrqcfo1JzBuz4Kf7o3brIBL0glI1junatA==", + "version": "16.2.12", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.2.12.tgz", + "integrity": "sha512-X6hzsOUJac/e7AWSbn9gQ9nzHld1xWP5iyjHpYWvud8pufB679O1xg4JDyKr8Xd69Jvd+kM2Der6uftiZCmjYA==", "cpu": [ "arm64" ], @@ -3762,9 +3696,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "16.2.10", - "resolved": "https://registry.npmmirror.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.2.10.tgz", - "integrity": "sha512-0JXq3b85Jk9Jg4ntLUbXSPvoDw3gpZou7twuKdoFG2jOw635v7+IiXfTaa0TxVMyx78pUjnrVYwLgjKfX4e6/A==", + "version": "16.2.12", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.2.12.tgz", + "integrity": "sha512-F6fakeHuFTLOPt0bslQJdf+xtT+WIP9DVn/m4y1w1mRnVPyh3D/cNvzlRkxM444xfm+IvvYNSOrKiA2CDJ0Uxw==", "cpu": [ "x64" ], @@ -3829,123 +3763,70 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@node-minify/core": { + "node_modules/@node-minify/terser": { "version": "8.0.6", - "resolved": "https://registry.npmmirror.com/@node-minify/core/-/core-8.0.6.tgz", - "integrity": "sha512-/vxN46ieWDLU67CmgbArEvOb41zlYFOkOtr9QW9CnTrBLuTyGgkyNWC2y5+khvRw3Br58p2B5ZVSx/PxCTru6g==", + "resolved": "https://registry.npmjs.org/@node-minify/terser/-/terser-8.0.6.tgz", + "integrity": "sha512-grQ1ipham743ch2c3++C8Isk6toJnxJSyDiwUI/IWUCh4CZFD6aYVw6UAY40IpCnjrq5aXGwiv5OZJn6Pr0hvg==", "license": "MIT", "dependencies": { "@node-minify/utils": "8.0.6", - "glob": "9.3.5", - "mkdirp": "1.0.4" + "terser": "5.16.9" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@node-minify/core/node_modules/glob": { - "version": "9.3.5", - "resolved": "https://registry.npmmirror.com/glob/-/glob-9.3.5.tgz", - "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "minimatch": "^8.0.2", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@node-minify/core/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "license": "ISC" - }, - "node_modules/@node-minify/core/node_modules/minimatch": { - "version": "8.0.7", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-8.0.7.tgz", - "integrity": "sha512-V+1uQNdzybxa14e/p00HZnQNNcTjnRJjDxg2V8wtkjFctq4M7hXFws4oekyTP0Jebeq7QYtpFyOeBAjc88zvYg==", - "license": "ISC", + "node_modules/@node-minify/utils": { + "version": "8.0.6", + "resolved": "https://registry.npmjs.org/@node-minify/utils/-/utils-8.0.6.tgz", + "integrity": "sha512-csY4qcR7jUwiZmkreNTJhcypQfts2aY2CK+a+rXgXUImZiZiySh0FvwHjRnlqWKvg+y6ae9lHFzDRjBTmqlTIQ==", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" + "gzip-size": "6.0.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@node-minify/core/node_modules/minipass": { - "version": "4.2.8", - "resolved": "https://registry.npmmirror.com/minipass/-/minipass-4.2.8.tgz", - "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", - "license": "ISC", "engines": { - "node": ">=8" + "node": ">=16.0.0" } }, - "node_modules/@node-minify/core/node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "license": "BlueOak-1.0.0", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@node-minify/core/node_modules/path-scurry/node_modules/minipass": { - "version": "7.1.3", - "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.1.3.tgz", - "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", - "license": "BlueOak-1.0.0", "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">= 8" } }, - "node_modules/@node-minify/terser": { - "version": "8.0.6", - "resolved": "https://registry.npmmirror.com/@node-minify/terser/-/terser-8.0.6.tgz", - "integrity": "sha512-grQ1ipham743ch2c3++C8Isk6toJnxJSyDiwUI/IWUCh4CZFD6aYVw6UAY40IpCnjrq5aXGwiv5OZJn6Pr0hvg==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "license": "MIT", - "dependencies": { - "@node-minify/utils": "8.0.6", - "terser": "5.16.9" - }, "engines": { - "node": ">=16.0.0" + "node": ">= 8" } }, - "node_modules/@node-minify/utils": { - "version": "8.0.6", - "resolved": "https://registry.npmmirror.com/@node-minify/utils/-/utils-8.0.6.tgz", - "integrity": "sha512-csY4qcR7jUwiZmkreNTJhcypQfts2aY2CK+a+rXgXUImZiZiySh0FvwHjRnlqWKvg+y6ae9lHFzDRjBTmqlTIQ==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "license": "MIT", "dependencies": { - "gzip-size": "6.0.0" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": ">=16.0.0" + "node": ">= 8" } }, "node_modules/@opennextjs/aws": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/@opennextjs/aws/-/aws-4.0.2.tgz", - "integrity": "sha512-nXQPT8GZDV+NWMJV9mD/Ywxyo+tCZfFvrR6jpEOYNcxK/AqiEDlJzPybGOrHUDWAYdR1b6tmh+MoR3VbqIao3w==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@opennextjs/aws/-/aws-4.1.0.tgz", + "integrity": "sha512-GuKkdUbnJhLvtwTiJlytNtWIcSYN3+Dzi+OusUlRgf+Ur7dGoXdzBopd+VFiSdTBduPOvr9lPFDg6BYNjEV3wQ==", "license": "MIT", "dependencies": { "@ast-grep/napi": "^0.40.5", @@ -3970,18 +3851,44 @@ "open-next": "dist/index.js" }, "peerDependencies": { - "next": ">=15.5.18 <16 || >=16.2.6" + "next": ">=15.5.21 <16 || >=16.2.11" + } + }, + "node_modules/@opennextjs/aws/node_modules/@node-minify/core": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/@node-minify/core/-/core-8.0.5.tgz", + "integrity": "sha512-uiK27SlEWq4bGRWOprXMwCTEa+fuVQdLehHMTAwGtHeqvE3i6XjKpYLFI7/ecWiGbDzDB1Gcf1NCiVyiVXfajw==", + "license": "MIT", + "dependencies": { + "@node-minify/utils": "8.0.5", + "globby": "11.1.0", + "mkdirp": "1.0.4" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@opennextjs/aws/node_modules/@node-minify/utils": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/@node-minify/utils/-/utils-8.0.5.tgz", + "integrity": "sha512-hBetTLSmbXmNF11A11AkfYeTxhPt83HY2oNNIwGSkv7C9V/beHZ0HbqFOmfRBudCc1hpiKZcTshUk7hbG0/XIQ==", + "license": "MIT", + "dependencies": { + "gzip-size": "6.0.0" + }, + "engines": { + "node": ">=16.0.0" } }, "node_modules/@opennextjs/cloudflare": { - "version": "1.20.1", - "resolved": "https://registry.npmmirror.com/@opennextjs/cloudflare/-/cloudflare-1.20.1.tgz", - "integrity": "sha512-T7yRoEmIdDQada0itRQmQ3cb9o9tWVg1193MviPWRX7XJulOQ6adz45ZgrJuzEPiwi+kMGnj9kozlNBlRNQZcw==", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@opennextjs/cloudflare/-/cloudflare-1.20.2.tgz", + "integrity": "sha512-iFBjABnaDk3be27F5EpxyMLMGPbVnnArFx5I3Y8Rf6BSx5nBV8h0UuJiMKrx3+whDU5ahIy4d8sfbvWvMiF1Kg==", "license": "MIT", "dependencies": { "@ast-grep/napi": "^0.40.5", "@dotenvx/dotenvx": "1.31.0", - "@opennextjs/aws": "4.0.2", + "@opennextjs/aws": "4.1.0", "ci-info": "^4.2.0", "cloudflare": "^4.4.1", "comment-json": "^4.5.1", @@ -3994,7 +3901,7 @@ "opennextjs-cloudflare": "dist/cli/index.js" }, "peerDependencies": { - "next": ">=15.5.18 <16 || >=16.2.6", + "next": ">=15.5.21 <16 || >=16.2.11", "rclone.js": "^0.6.6", "wrangler": "^4.86.0" }, @@ -4334,7 +4241,7 @@ }, "node_modules/@poppinss/colors": { "version": "4.1.6", - "resolved": "https://registry.npmmirror.com/@poppinss/colors/-/colors-4.1.6.tgz", + "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-4.1.6.tgz", "integrity": "sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==", "license": "MIT", "dependencies": { @@ -4343,7 +4250,7 @@ }, "node_modules/@poppinss/dumper": { "version": "0.6.5", - "resolved": "https://registry.npmmirror.com/@poppinss/dumper/-/dumper-0.6.5.tgz", + "resolved": "https://registry.npmjs.org/@poppinss/dumper/-/dumper-0.6.5.tgz", "integrity": "sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==", "license": "MIT", "dependencies": { @@ -4354,7 +4261,7 @@ }, "node_modules/@poppinss/exception": { "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/@poppinss/exception/-/exception-1.2.3.tgz", + "resolved": "https://registry.npmjs.org/@poppinss/exception/-/exception-1.2.3.tgz", "integrity": "sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==", "license": "MIT" }, @@ -5097,7 +5004,7 @@ }, "node_modules/@sindresorhus/is": { "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-7.2.0.tgz", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.2.0.tgz", "integrity": "sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==", "license": "MIT", "engines": { @@ -5108,12 +5015,12 @@ } }, "node_modules/@smithy/config-resolver": { - "version": "4.6.10", - "resolved": "https://registry.npmmirror.com/@smithy/config-resolver/-/config-resolver-4.6.10.tgz", - "integrity": "sha512-OSWakjTQRuMCps5YE8fOxGdDv7gEtanlyn5KtfCBgDE+dvaUPJH7xDQRADRnnBoMh792cGFUsvFLmxobxOpbkg==", + "version": "4.6.14", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.6.14.tgz", + "integrity": "sha512-7qUsqGDU7yup+ARqI6CO1KOz8rjVPpyzbdQX4dab+3GEl4YnmpnhUnwZb5BLtZC0TqOAwyv1UJiocgRhLHVNWA==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5121,9 +5028,9 @@ } }, "node_modules/@smithy/core": { - "version": "3.29.5", - "resolved": "https://registry.npmmirror.com/@smithy/core/-/core-3.29.5.tgz", - "integrity": "sha512-i0dk2t5B+CwV/dcJdUHILYkOQF5lof8f44dFCfDWToGCxjT9YQ+CgHqTAvJxzc3+zqQwm2QtVoJ5IqiNar/CnQ==", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.30.0.tgz", + "integrity": "sha512-dl2yRglDxfzH9uJ4fSo4zTaAHa0zH7+V7BZMRWy8hEYIKT1BiqMUK/CN6T3ADQ3kbA5N1tmUulroJ2UtONS7Kw==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.16.1", @@ -5134,12 +5041,12 @@ } }, "node_modules/@smithy/credential-provider-imds": { - "version": "4.4.10", - "resolved": "https://registry.npmmirror.com/@smithy/credential-provider-imds/-/credential-provider-imds-4.4.10.tgz", - "integrity": "sha512-MJenAe4OKRZUo1LdYYFDCsSHxaHvInIU/z52GsheO9vl1/VSySVCr0zkyKD6TFiGkSUaWGxvKZ/70OvgUZR5HQ==", + "version": "4.4.14", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.4.14.tgz", + "integrity": "sha512-QgbuahIb2qxQeZQvNK0sw3aF3JH5zwH8j2lLp5DUasVXexGGMWULAR+7z0omPXFolCP/m5wN9M5lm9EGdSviTQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "@smithy/types": "^4.16.1", "tslib": "^2.6.2" }, @@ -5148,12 +5055,12 @@ } }, "node_modules/@smithy/eventstream-serde-browser": { - "version": "4.4.10", - "resolved": "https://registry.npmmirror.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.4.10.tgz", - "integrity": "sha512-zey14RlIRiCM3OqDI2f+dMJnUgKnRTQfnnbnPjJToUh7Jc4AI7LGSWa1uLMJx1o6FeODC5iYz6HhpPeNv9LfPw==", + "version": "4.4.14", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.4.14.tgz", + "integrity": "sha512-nNy0T3FoMk4U8JS+MsA2hIRclzoBogYg50SDItWii2KM5dsSZIcXcMLkBaJMDkTT/hjrm0CBDJd8KNIeUuSWAw==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5161,12 +5068,12 @@ } }, "node_modules/@smithy/eventstream-serde-config-resolver": { - "version": "4.5.10", - "resolved": "https://registry.npmmirror.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.5.10.tgz", - "integrity": "sha512-tO9Odivl70u8YwSxg0mnZ3DRqN8aVwISWb6GQBx+fX6rFPhS6fub6dPg+2N8osdoOp6TQa2hRUwMUJVDw/CPJg==", + "version": "4.5.14", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.5.14.tgz", + "integrity": "sha512-EoCNcYtHfa+78QmRY5uwQBtmYwY1aiaRG3m5TokDjr4qGOcnCnS3/BCeQZ7KbxmjBZBe4uuNl3CicUZ2qy2PcQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5174,12 +5081,12 @@ } }, "node_modules/@smithy/eventstream-serde-node": { - "version": "4.4.10", - "resolved": "https://registry.npmmirror.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.4.10.tgz", - "integrity": "sha512-Z7W4LpEWHcOOwGwXpPujDVcpOeDwEtfyBFfj/2eqXjMsBu+dk1cmiJx8kM13IQ4v2WbTlhmkydVc7ViHoT6i3A==", + "version": "4.4.14", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.4.14.tgz", + "integrity": "sha512-qrwFz7xMIEhQDhRJ2IS+SvhnCuLMB6rCaGXT41XMJyviGC/+uTxOUTk/pDArsQ68RyjIcwQH5+UD9VJjnMHGRQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5187,12 +5094,12 @@ } }, "node_modules/@smithy/fetch-http-handler": { - "version": "5.6.7", - "resolved": "https://registry.npmmirror.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.6.7.tgz", - "integrity": "sha512-3zpg8yqqyXzoK2TsRDdkqVOj2RDBFfLXwCczOZ5c7TWB4eiaebfSCsbMjDPYB3PJ9ihV62QaeadZ+wLadZtNGA==", + "version": "5.6.11", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.6.11.tgz", + "integrity": "sha512-o0Zkj1nKqJAoq+a+BrkhU39tRftMNjLwpc/z06Frfl43wpbHrJMaSAVZE4vTqlxtVkNaGaT0bIDxOp7tkFTuQQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "@smithy/types": "^4.16.1", "tslib": "^2.6.2" }, @@ -5201,12 +5108,12 @@ } }, "node_modules/@smithy/hash-blob-browser": { - "version": "4.4.10", - "resolved": "https://registry.npmmirror.com/@smithy/hash-blob-browser/-/hash-blob-browser-4.4.10.tgz", - "integrity": "sha512-DFOpzjXqmxvGtR9i+MdjMduBsDg1l+szdg8vGzPdM3z6I+GA/9T1Y2snHP9LzIH0lVfbVPMOlUm2vlpmr9eAeQ==", + "version": "4.4.14", + "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-4.4.14.tgz", + "integrity": "sha512-2oFwcnYUChslJY1xFlqigC4y7EIBemPiAtZP65Ec8o/IVxEkv/sHOhAtcYiFlygNVBKGxmMud9mKP4aUEn348w==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5214,12 +5121,12 @@ } }, "node_modules/@smithy/hash-node": { - "version": "4.4.10", - "resolved": "https://registry.npmmirror.com/@smithy/hash-node/-/hash-node-4.4.10.tgz", - "integrity": "sha512-y0CfGFpEVyGg6EfrBj0BWkgfaRiXk+dG4t3xYNPMbnkOBBy8Yv8THUDsmkHXe2PyzYIzC6uPlT97kZoX6KF9vg==", + "version": "4.4.14", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.4.14.tgz", + "integrity": "sha512-kd+H/Vmy6RHGU1m4SSyZ2BaMbPwPcAAX1zmQ5sI1Ljug4oGKYCVjbkPo3yqbUlzvGhogF/TtwSnwCDwlflYUlg==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5227,12 +5134,12 @@ } }, "node_modules/@smithy/hash-stream-node": { - "version": "4.4.10", - "resolved": "https://registry.npmmirror.com/@smithy/hash-stream-node/-/hash-stream-node-4.4.10.tgz", - "integrity": "sha512-ejfPsyC4svGSFNCzkAyMmPpmbenmQiUDtPHN8nv/84cPJAHMsdVC7+uvlby2awzvolUOeaKFR0qJdefXK2cPIg==", + "version": "4.4.14", + "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-4.4.14.tgz", + "integrity": "sha512-z/djW+1jpBys4eFEVvYXBfMQ1SIM6VcLpwzo5naMec7AIgIx9ekm6GYtZIcMPpeyQWNp/mNl44xLtHLD4qKJPA==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5240,12 +5147,12 @@ } }, "node_modules/@smithy/invalid-dependency": { - "version": "4.4.10", - "resolved": "https://registry.npmmirror.com/@smithy/invalid-dependency/-/invalid-dependency-4.4.10.tgz", - "integrity": "sha512-gF+13AFjZoEjRcUNdkA2Q8tjL2/m3f7ipcZ2w35Hj6Sm9A+gj+yEsuGV70X3UPHar5tTl+385F4Zi9DBaIW3Ag==", + "version": "4.4.14", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.4.14.tgz", + "integrity": "sha512-AN3I5u5YQAmrQNXR4F6cA6UnWuN78jOFn+vdk6Fj20OO8GFbLCPDun1Cdwk0ogv6EISyG14s9mJ4YAR2b3ldgw==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5254,7 +5161,7 @@ }, "node_modules/@smithy/is-array-buffer": { "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", "license": "Apache-2.0", "dependencies": { @@ -5265,12 +5172,12 @@ } }, "node_modules/@smithy/md5-js": { - "version": "4.4.10", - "resolved": "https://registry.npmmirror.com/@smithy/md5-js/-/md5-js-4.4.10.tgz", - "integrity": "sha512-XI5xhWxRkWuiLNj0/Z30vLTPpZe9UQcg57Ox/n4vzGmFiHSrD+xAmx6ubEcWt6u69IOH+4LAucpaZk5AMxB8oQ==", + "version": "4.4.14", + "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-4.4.14.tgz", + "integrity": "sha512-qaAvszTVZTo+f4aGMGKZII9BhHi1ZAEAJw/uDO629RVJr0RbdnMZySYNOi1louQE2WvpcRYw3Sv44mhuIMMboA==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5278,12 +5185,12 @@ } }, "node_modules/@smithy/middleware-content-length": { - "version": "4.4.10", - "resolved": "https://registry.npmmirror.com/@smithy/middleware-content-length/-/middleware-content-length-4.4.10.tgz", - "integrity": "sha512-fF04hl+iHSBW1xuXKaKDwp2/OSiClOYHi16+KZxmlTu/DIoy0VyOVaPnJh+ZlKXeYKMz/jR8/eoQ1rDHpft8qA==", + "version": "4.4.14", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.4.14.tgz", + "integrity": "sha512-PAyVvMxXkPDVamjg1gcgciXimhHtqqanpNRWAWyMH7UDLnXld/xGRNPRyHfPZUjfx7hulB/5lh2FMZ/v3deDiA==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5291,12 +5198,12 @@ } }, "node_modules/@smithy/middleware-endpoint": { - "version": "4.6.10", - "resolved": "https://registry.npmmirror.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.6.10.tgz", - "integrity": "sha512-AxGe7eMGOwmANI/K6O6a95hTInLocQslDVwCiidV7tat0JDcbpRr0c33VwieO8P3mlh7mqiNhBlyG7VlzZxZIg==", + "version": "4.6.14", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.6.14.tgz", + "integrity": "sha512-QEeW1R9y4ShiTEqCRibijbUtdT435QneaLZnVvII+wCh+WZk9JIE2wA5k8z3/eqfxfqfSb8NdonIh/zP0+akRg==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5304,12 +5211,12 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "4.7.10", - "resolved": "https://registry.npmmirror.com/@smithy/middleware-retry/-/middleware-retry-4.7.10.tgz", - "integrity": "sha512-JY4Oi57f0uVIncDmNnUEGNkyoJZ7bw9rVZPIrgRyEPdDhcCDvhYYomY/FTQBS4JnrJx168c739NLoJzsygGdxA==", + "version": "4.7.14", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.7.14.tgz", + "integrity": "sha512-F+3QRXX82VuvpiKP8smehWzk4pLNfpvLMuc0R9/lcp4baYlTvWWd5Vju7rnquY4wbefYBMmkitceC0LBNSX0rA==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5317,12 +5224,12 @@ } }, "node_modules/@smithy/middleware-serde": { - "version": "4.4.10", - "resolved": "https://registry.npmmirror.com/@smithy/middleware-serde/-/middleware-serde-4.4.10.tgz", - "integrity": "sha512-x1LF7xwoZfvnU1G6wYV9Zm788t13CTvx+QPtdBMxNOBnAc1xArpO4ekr0lPEs7nKbvYgCecLwBZa3hjwMHWwtA==", + "version": "4.4.14", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.4.14.tgz", + "integrity": "sha512-GWtPvvzdjx+xQwQF6YiHUazPDg20ZKAIxsUa/7rGSE6oNnO3OyGpKZtg43uYb8sgq1HiNOcS0mXmkusFqstRnw==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5330,12 +5237,12 @@ } }, "node_modules/@smithy/middleware-stack": { - "version": "4.4.10", - "resolved": "https://registry.npmmirror.com/@smithy/middleware-stack/-/middleware-stack-4.4.10.tgz", - "integrity": "sha512-Uw0gfjz9HgGaaL6+AIMMfs0put11pnuRJltHNU6TU73BfR3Cowms14WM4ovSDxkpJrgNlSQb1XKJVVNUtHhIkQ==", + "version": "4.4.14", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.4.14.tgz", + "integrity": "sha512-ttGanHVaD2pdeVawKNRnKy+oZYrAeS7jjWoFS2oQzJJksvZ6yKaWxjbi3sr7Qiiv0qhEyU3bE8v4Fqz+maijHg==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5343,12 +5250,12 @@ } }, "node_modules/@smithy/node-config-provider": { - "version": "4.5.10", - "resolved": "https://registry.npmmirror.com/@smithy/node-config-provider/-/node-config-provider-4.5.10.tgz", - "integrity": "sha512-8J0iQAEQ+WKwUh8NuR7SEr3wdSbXSvTQ2PLMcgWmL8TGqHsy0glEnaZvbuYCQr4RkZjxJ3mfSI2BsbPrxcsRIA==", + "version": "4.5.14", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.5.14.tgz", + "integrity": "sha512-6iv9dLiDX4he0KLFr2vw2u98Q+lIEsF0G+1MZVy5kWjZRLYXvY6S4uJ+R3aC4xYBkjljAtCB3uG9Y8pBL3O3Ug==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5356,12 +5263,12 @@ } }, "node_modules/@smithy/node-http-handler": { - "version": "4.9.7", - "resolved": "https://registry.npmmirror.com/@smithy/node-http-handler/-/node-http-handler-4.9.7.tgz", - "integrity": "sha512-wCU8HCLjAtAVqxxe0j2xff9LcEPw3yjBbg5IdQDIYFnxnPxbxcSLc7rgex7kqm9L/WYOnJEgaWQlfDkZleozMA==", + "version": "4.9.11", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.9.11.tgz", + "integrity": "sha512-slbzbz8taEOzoXv/9y34YNBoE+ZHmddLykCgjDAjvMAsu2nM5s2Gzwa5OGF721tD8s+CKeFUBds5lSj9lcbuDg==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "@smithy/types": "^4.16.1", "tslib": "^2.6.2" }, @@ -5370,12 +5277,12 @@ } }, "node_modules/@smithy/protocol-http": { - "version": "5.5.10", - "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-5.5.10.tgz", - "integrity": "sha512-0AnsOUvCHQBOXnBJbrX9QGidpvbb3F4aIUFlWPXCfRYxYCcoxj9Uq+b8j75wIZRIwhwiKDWJDZmoHjjQ82GYZA==", + "version": "5.5.14", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.5.14.tgz", + "integrity": "sha512-R+aYfS8kDXMwO+LfpiWTJjjUsR+se4cd2ZBjMU3fqJmoSZ1jenTpgb4/k1SvvXcM9f0232KvufZoO5XRWoiPBw==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5383,12 +5290,12 @@ } }, "node_modules/@smithy/signature-v4": { - "version": "5.6.6", - "resolved": "https://registry.npmmirror.com/@smithy/signature-v4/-/signature-v4-5.6.6.tgz", - "integrity": "sha512-efP6DN3UTFrzIsGO42/xcabv8jU7+9nwEdphFUH7yL0k010ERyAWaO41KFQIDLcFZLZ8xzIQr4wplFxNzslSGQ==", + "version": "5.6.10", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.6.10.tgz", + "integrity": "sha512-EXhWePm3SXJAX38npIy4TXL2Aex/OVgCClTjelN2QHw/U+8CQUH8C7AaxsVzQcYieYPseywn48s89DmvuGjiAg==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "@smithy/types": "^4.16.1", "tslib": "^2.6.2" }, @@ -5397,12 +5304,12 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "4.14.10", - "resolved": "https://registry.npmmirror.com/@smithy/smithy-client/-/smithy-client-4.14.10.tgz", - "integrity": "sha512-afUBB2TJBFTlC3axCVDoVStuwkIzMlAAMY/9/pNyE3uspyTxJRczEb/5YiXuE2V1CfX4uGEQPpwZ8mtTzyq5yA==", + "version": "4.14.14", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.14.14.tgz", + "integrity": "sha512-epzar5Uc3+YZ8jNybEzz4R4cZva2bJqg2QyHRt+kR2oMK9EWJFW1MsuBszU0exjfR6ziYfapxJGRlFdnSMA91Q==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "@smithy/types": "^4.16.1", "tslib": "^2.6.2" }, @@ -5412,7 +5319,7 @@ }, "node_modules/@smithy/types": { "version": "4.16.1", - "resolved": "https://registry.npmmirror.com/@smithy/types/-/types-4.16.1.tgz", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.16.1.tgz", "integrity": "sha512-0JFs3V2y2M9tKW5na/qxe69Zv+uxLMO7QBbhxF/FHu/Gp2NFZAAL9tWl9PU02xxo07pb3G9FTyjNc6D5uZrJIg==", "license": "Apache-2.0", "dependencies": { @@ -5423,12 +5330,12 @@ } }, "node_modules/@smithy/url-parser": { - "version": "4.4.10", - "resolved": "https://registry.npmmirror.com/@smithy/url-parser/-/url-parser-4.4.10.tgz", - "integrity": "sha512-f1bDXQ9mDozbWok054W8GKwuk7qI33E3S6RvbHtplaBc3BVzxh94zndEqDqTxdxlqKRplsmhuNO0hOhU4AQQ2A==", + "version": "4.4.14", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.4.14.tgz", + "integrity": "sha512-D0wtx8S7bBqvpkASXWQ7tIqGyRuxntqKvcTcqiZzhF67pvAhn9ETyptTnA7AGQdoXO3c3pEaRGNiUkMfV4QLFA==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5436,12 +5343,12 @@ } }, "node_modules/@smithy/util-base64": { - "version": "4.5.10", - "resolved": "https://registry.npmmirror.com/@smithy/util-base64/-/util-base64-4.5.10.tgz", - "integrity": "sha512-piUTpCteEPeqiIw5nU/8phVUSpjXRU6M5rEF3XUyUJtqP5LUkvVf9zpWCbYqv7kj3SzBW36sKW2c0CiOs2fA/A==", + "version": "4.5.14", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.5.14.tgz", + "integrity": "sha512-intksPGZMv2v+neBuH90UQH6b1th+YBiUG9wNXZMwnQZJRiInU5QnY8DAWbvlqP1H+f/08j8vRXcoU1ZHOOKtg==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5449,12 +5356,12 @@ } }, "node_modules/@smithy/util-body-length-browser": { - "version": "4.4.10", - "resolved": "https://registry.npmmirror.com/@smithy/util-body-length-browser/-/util-body-length-browser-4.4.10.tgz", - "integrity": "sha512-/TTYEuHmnPHDHociNoSsz9EeoeS91oYwuBIHYcCqwGGOW6B+T0Xll03S0Q8UepI40FuSf3mMrkre7npFCHhttg==", + "version": "4.4.14", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.4.14.tgz", + "integrity": "sha512-uKX3MPwdx7+REHZQsZ9EVc650vKqz58zEMD0PCnRW7kUCxcaJjLE31upDU1uI8g6ewrxbvDV5+720Ny6l+i8SA==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5462,12 +5369,12 @@ } }, "node_modules/@smithy/util-body-length-node": { - "version": "4.4.10", - "resolved": "https://registry.npmmirror.com/@smithy/util-body-length-node/-/util-body-length-node-4.4.10.tgz", - "integrity": "sha512-8HYVvYG32E2wLq4MTlgRlcghZxcj6BvBXkSMqULEJQFLnQeiHptQ2xUYH98KJwaC7CBPrZawQwUfcmEicJs4AQ==", + "version": "4.4.14", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.4.14.tgz", + "integrity": "sha512-BC5ucI2L2VJ+Q+YMbMszMYKouezi//TzIkwR5pXT3Bkd1dQdFcLbukR1y6/QlffS8AmS/6I4IO4A148fCpwqxA==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5476,7 +5383,7 @@ }, "node_modules/@smithy/util-buffer-from": { "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", "license": "Apache-2.0", "dependencies": { @@ -5488,12 +5395,12 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "4.5.10", - "resolved": "https://registry.npmmirror.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.5.10.tgz", - "integrity": "sha512-bQGtrcVQHfJJQ1bhdZ4I1Q8GwJRw0WqPIcRocvwQ/ukfaCEw22acQhCxEj7UiNYwD7ij5mOXFp8e+FdbVDd6Yw==", + "version": "4.5.14", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.5.14.tgz", + "integrity": "sha512-jyKoAr0qlTpext3lrDsv0K8NzAbvOVOk4K2I7TaYGN6NTw75B4gVLXu5gh0gzYzuzIDi/JgEcprROp+1fnA2dg==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5501,12 +5408,12 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "4.4.10", - "resolved": "https://registry.npmmirror.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.4.10.tgz", - "integrity": "sha512-kwmn00irjhU1hRMYJiPHN3EgXiJbuSh5p6cCHSds3T+8YsMUisWuiVp7zlwe68UsJPFeBKPDGDJ+MM8Kr43Ltw==", + "version": "4.4.14", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.4.14.tgz", + "integrity": "sha512-FsIY7VdbDZ1wdzmYwd6muxoe0dh25ksr5h4aNo82yl7CoWIEDSGJayc9v9woI5CPz0wg4VREnxT4rvSHhUnCfw==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5514,12 +5421,12 @@ } }, "node_modules/@smithy/util-endpoints": { - "version": "3.6.10", - "resolved": "https://registry.npmmirror.com/@smithy/util-endpoints/-/util-endpoints-3.6.10.tgz", - "integrity": "sha512-MqqMomCIaSpYm/FDOfhRMt+3IRI+18YSB9ukoIEocXr0MFBUzkKnrsMp6NnBB2zvDfpJtbA/AWGwqOT9lM9sFQ==", + "version": "3.6.14", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.6.14.tgz", + "integrity": "sha512-7DJIwcS1yS9+S1s+2fy3yRbDrmNB3pyuyd06N0uvARuPVKaq/g5GDreJy9q2glJ50lw2WZ6s+n9UTXV9s7Nfrw==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5527,12 +5434,12 @@ } }, "node_modules/@smithy/util-middleware": { - "version": "4.4.10", - "resolved": "https://registry.npmmirror.com/@smithy/util-middleware/-/util-middleware-4.4.10.tgz", - "integrity": "sha512-jFkCTa/hzSc+rDc3yzHkv6OI/rLjAy88rcgZ0lP8NdkZhgR9N3TiDj6lW1hAYt42bwx8HpwPJCQegj3I2YGRfg==", + "version": "4.4.14", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.4.14.tgz", + "integrity": "sha512-KBcBQhuWujUMyU/lqCDlQHSfComVk2DJeK4dJGeoJm+aQlo6CbnIZw3G6THPdZwGyVhDJd5yzx8pqMTo5kcSZg==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5540,12 +5447,12 @@ } }, "node_modules/@smithy/util-retry": { - "version": "4.5.10", - "resolved": "https://registry.npmmirror.com/@smithy/util-retry/-/util-retry-4.5.10.tgz", - "integrity": "sha512-hYu5ieq8myuO29xCQV0IIhicRm1aO0lcNBeMcF1mVVAVQC0oylPGKFliMq5NbxtdOvRxJWCMuir2gwKI91f1lw==", + "version": "4.5.14", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.5.14.tgz", + "integrity": "sha512-obEfPrwJlOX0iz1Gz8Wqkt42OlYJAn7aK+zJJz4aGX6Mw62c3q9en/tkq3gfYL42pVKJFaB7+cQKW1ZHSXx62w==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5553,12 +5460,12 @@ } }, "node_modules/@smithy/util-stream": { - "version": "4.7.10", - "resolved": "https://registry.npmmirror.com/@smithy/util-stream/-/util-stream-4.7.10.tgz", - "integrity": "sha512-4BC4NZReiHMurGeBUNWqpRj4hHvrxZY9Ai7QTctIDIZWOXKjf+d6Kcf259drOqlouiLjfMhaIx+b4NQ6jJ7+1Q==", + "version": "4.7.14", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.7.14.tgz", + "integrity": "sha512-92Y8IdPUdtpdjt2OUxdLCJhHO05RfulfOLQG1A29x8nI4SZ0U3WpkdZWRkI8oCkU11E1qmjzJ/OszpDjtMNWPA==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5566,12 +5473,12 @@ } }, "node_modules/@smithy/util-utf8": { - "version": "4.4.10", - "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-4.4.10.tgz", - "integrity": "sha512-4pWFv2sxrykZqaTixXhkgAsG6+k/VxgAiyZ6M0iLEmsOqcJaR0eidlTCmuKKtMJMIEw8lYwDTvEyR4NyC+V0cw==", + "version": "4.4.14", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.4.14.tgz", + "integrity": "sha512-zpHIvgr2NWASkgWgv1O0zPPX7VFdkHKa9NxxjGseGvSY2DRZgRsnoXuEcjETwPeqP92blsINwfbIJz0F0/0Skg==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5579,12 +5486,12 @@ } }, "node_modules/@smithy/util-waiter": { - "version": "4.5.10", - "resolved": "https://registry.npmmirror.com/@smithy/util-waiter/-/util-waiter-4.5.10.tgz", - "integrity": "sha512-Rv+to3gsHhRwtcFdMZ5dnFG90tXjHn2rz2y0ieSgPPz8+fqVLYs60yrsZYnqUVzI8nTiMaGimntfzE2GazocSQ==", + "version": "4.5.14", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.5.14.tgz", + "integrity": "sha512-vPp2h5zeOS2tZeuuu/LHQhN9Gae5okvSpSk5/6FipxmiLrab+Ua0iAuLUmEjBu/JxcoI0/oqgDgckvORncFCRA==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.29.5", + "@smithy/core": "^3.30.0", "tslib": "^2.6.2" }, "engines": { @@ -5593,7 +5500,7 @@ }, "node_modules/@speed-highlight/core": { "version": "1.2.17", - "resolved": "https://registry.npmmirror.com/@speed-highlight/core/-/core-1.2.17.tgz", + "resolved": "https://registry.npmjs.org/@speed-highlight/core/-/core-1.2.17.tgz", "integrity": "sha512-Z92FwKpCtfaW1V0jTU/fh3QzYEZN8wDwrzRIBoADCJfn4mJCNcJN/XegifX7BDrQ8/h9Xh/JnbyMchL0FqXrkg==", "license": "CC0-1.0" }, @@ -6132,7 +6039,7 @@ }, "node_modules/@tsconfig/node18": { "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/@tsconfig/node18/-/node18-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/@tsconfig/node18/-/node18-1.0.3.tgz", "integrity": "sha512-RbwvSJQsuN9TB04AQbGULYfOGE/RnSFk/FLQ5b0NmDf5Kx2q/lABZbHQPKCO1vZ6Fiwkplu+yb9pGdLy1iGseQ==", "license": "MIT" }, @@ -6238,6 +6145,14 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/esrecurse": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz", + "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/@types/estree": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", @@ -6489,19 +6404,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", - "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/@ungap/structured-clone": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", @@ -6609,7 +6511,7 @@ }, "node_modules/accepts": { "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/accepts/-/accepts-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", "license": "MIT", "dependencies": { @@ -6621,9 +6523,9 @@ } }, "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", + "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -6762,14 +6664,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0", - "peer": true - }, "node_modules/aria-hidden": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", @@ -6788,6 +6682,15 @@ "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", "license": "MIT" }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/assertion-error": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/assertion-error/-/assertion-error-2.0.1.tgz", @@ -6816,7 +6719,7 @@ }, "node_modules/aws4fetch": { "version": "1.0.20", - "resolved": "https://registry.npmmirror.com/aws4fetch/-/aws4fetch-1.0.20.tgz", + "resolved": "https://registry.npmjs.org/aws4fetch/-/aws4fetch-1.0.20.tgz", "integrity": "sha512-/djoAN709iY65ETD6LKCtyyEI04XIBP5xVvfmNxsEP0uJB5tyaGBztSryRr4HqMStr9R06PisQE7m9zDTXKu6g==", "license": "MIT" }, @@ -6842,10 +6745,13 @@ } }, "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } }, "node_modules/baseline-browser-mapping": { "version": "2.10.43", @@ -6867,7 +6773,7 @@ }, "node_modules/body-parser": { "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz", "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==", "license": "MIT", "dependencies": { @@ -6891,7 +6797,7 @@ }, "node_modules/body-parser/node_modules/content-type": { "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/content-type/-/content-type-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz", "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==", "license": "MIT", "engines": { @@ -6904,24 +6810,26 @@ }, "node_modules/bowser": { "version": "2.14.1", - "resolved": "https://registry.npmmirror.com/bowser/-/bowser-2.14.1.tgz", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.14.1.tgz", "integrity": "sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==", "license": "MIT" }, "node_modules/brace-expansion": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.2.tgz", - "integrity": "sha512-w5JZcKgdhDOgOwm8H+KgbosopHMuGcl6qbulwjtz3SM7I7P3yW1eAjzMPLrIE+NQ9vjgANKHWeMHnrT0OXW1oA==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.8.tgz", + "integrity": "sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==", "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" } }, "node_modules/braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, "license": "MIT", "dependencies": { "fill-range": "^7.1.1" @@ -6938,7 +6846,7 @@ }, "node_modules/bytes": { "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "license": "MIT", "engines": { @@ -6960,7 +6868,7 @@ }, "node_modules/call-bound": { "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/call-bound/-/call-bound-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "license": "MIT", "dependencies": { @@ -7407,17 +7315,9 @@ "node": ">= 6" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/content-disposition": { "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", "license": "MIT", "engines": { @@ -7430,7 +7330,7 @@ }, "node_modules/content-type": { "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "license": "MIT", "engines": { @@ -7446,7 +7346,7 @@ }, "node_modules/cookie": { "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/cookie/-/cookie-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", "license": "MIT", "engines": { @@ -7459,7 +7359,7 @@ }, "node_modules/cookie-signature": { "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.2.2.tgz", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", "license": "MIT", "engines": { @@ -7891,7 +7791,7 @@ }, "node_modules/depd": { "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "license": "MIT", "engines": { @@ -7937,6 +7837,18 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/dotenv": { "version": "16.6.1", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", @@ -7994,7 +7906,7 @@ }, "node_modules/ee-first": { "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "license": "MIT" }, @@ -8006,7 +7918,7 @@ }, "node_modules/encodeurl": { "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "license": "MIT", "engines": { @@ -8068,7 +7980,7 @@ }, "node_modules/error-stack-parser-es": { "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz", + "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz", "integrity": "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==", "license": "MIT", "funding": { @@ -8173,7 +8085,7 @@ }, "node_modules/esbuild": { "version": "0.25.4", - "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.25.4.tgz", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", "hasInstallScript": true, "license": "MIT", @@ -8222,7 +8134,7 @@ }, "node_modules/escape-html": { "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "license": "MIT" }, @@ -8240,34 +8152,34 @@ } }, "node_modules/eslint": { - "version": "9.39.2", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", - "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.8.0.tgz", + "integrity": "sha512-nuKKvN+oIBO0koN7Tm7dlkmnkc21mtt0QJLwAKzjLq14y6lRTdVG36MZHJ8eQHwdJMwZbQNMlPOYedMq/oVJvQ==", "dev": true, "license": "MIT", "peer": true, + "workspaces": [ + "packages/*" + ], "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.1", - "@eslint/config-helpers": "^0.4.2", - "@eslint/core": "^0.17.0", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.39.2", - "@eslint/plugin-kit": "^0.4.1", + "@eslint-community/regexpp": "^4.12.2", + "@eslint/config-array": "^0.23.5", + "@eslint/config-helpers": "^0.7.0", + "@eslint/core": "^1.2.1", + "@eslint/plugin-kit": "^0.7.2", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", - "ajv": "^6.12.4", - "chalk": "^4.0.0", + "ajv": "^6.14.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.4.0", - "eslint-visitor-keys": "^4.2.1", - "espree": "^10.4.0", - "esquery": "^1.5.0", + "eslint-scope": "^9.1.2", + "eslint-visitor-keys": "^5.0.1", + "espree": "^11.2.0", + "esquery": "^1.7.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", @@ -8277,8 +8189,7 @@ "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", + "minimatch": "^10.2.5", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, @@ -8286,7 +8197,7 @@ "eslint": "bin/eslint.js" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://eslint.org/donate" @@ -8301,32 +8212,33 @@ } }, "node_modules/eslint-scope": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", - "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz", + "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==", "dev": true, "license": "BSD-2-Clause", "peer": true, "dependencies": { + "@types/esrecurse": "^4.3.1", + "@types/estree": "^1.0.8", "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", "dev": true, "license": "Apache-2.0", - "peer": true, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://opencollective.com/eslint" @@ -8350,53 +8262,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.16.tgz", - "integrity": "sha512-IDw48K2/2kRkg9LdJxurvq3lV3aBgq0REY89duEqFRthjlPdXHKMj7EnQOXVckxzgisinf3nHfrcE2FufFLXMw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/eslint/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -8405,48 +8270,20 @@ "license": "MIT", "peer": true }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/espree": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", - "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", + "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", "dev": true, "license": "BSD-2-Clause", "peer": true, "dependencies": { - "acorn": "^8.15.0", + "acorn": "^8.16.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.1" + "eslint-visitor-keys": "^5.0.1" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://opencollective.com/eslint" @@ -8615,7 +8452,7 @@ }, "node_modules/etag": { "version": "1.8.1", - "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "license": "MIT", "engines": { @@ -8672,7 +8509,7 @@ }, "node_modules/express": { "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/express/-/express-5.2.1.tgz", + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", "license": "MIT", "dependencies": { @@ -8715,7 +8552,7 @@ }, "node_modules/express/node_modules/cookie": { "version": "0.7.2", - "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.7.2.tgz", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "license": "MIT", "engines": { @@ -8759,6 +8596,34 @@ "node": ">=6.0.0" } }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -8775,9 +8640,9 @@ "peer": true }, "node_modules/fast-uri": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.3.tgz", - "integrity": "sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.4.tgz", + "integrity": "sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==", "dev": true, "funding": [ { @@ -8791,6 +8656,15 @@ ], "license": "BSD-3-Clause" }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/fault": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", @@ -8840,7 +8714,6 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -8851,7 +8724,7 @@ }, "node_modules/finalhandler": { "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", "license": "MIT", "dependencies": { @@ -9005,7 +8878,7 @@ }, "node_modules/forwarded": { "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "license": "MIT", "engines": { @@ -9014,19 +8887,13 @@ }, "node_modules/fresh": { "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/fresh/-/fresh-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", "license": "MIT", "engines": { "node": ">= 0.8" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "license": "ISC" - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -9192,15 +9059,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", - "dev": true, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "license": "MIT", - "peer": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, "engines": { - "node": ">=18" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -9280,17 +9153,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/has-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", @@ -9451,7 +9313,7 @@ }, "node_modules/http-errors": { "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", "license": "MIT", "dependencies": { @@ -9505,7 +9367,7 @@ }, "node_modules/iconv-lite": { "version": "0.7.3", - "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.7.3.tgz", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", "license": "MIT", "dependencies": { @@ -9617,7 +9479,7 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "license": "ISC" }, @@ -9659,7 +9521,7 @@ }, "node_modules/ipaddr.js": { "version": "1.9.1", - "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "license": "MIT", "engines": { @@ -9765,7 +9627,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.12.0" @@ -9796,7 +9657,7 @@ }, "node_modules/is-promise": { "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/is-promise/-/is-promise-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", "license": "MIT" }, @@ -9846,30 +9707,6 @@ "jiti": "lib/jiti-cli.mjs" } }, - "node_modules/js-yaml": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz", - "integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/puzrin" - }, - { - "type": "github", - "url": "https://github.com/sponsors/nodeca" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", @@ -9916,7 +9753,7 @@ }, "node_modules/kleur": { "version": "4.1.5", - "resolved": "https://registry.npmmirror.com/kleur/-/kleur-4.1.5.tgz", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", "license": "MIT", "engines": { @@ -10335,14 +10172,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/log-update": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", @@ -10859,17 +10688,21 @@ } }, "node_modules/media-typer": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-1.1.0.tgz", - "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.1.tgz", + "integrity": "sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==", "license": "MIT", "engines": { "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/merge-descriptors": { "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", "license": "MIT", "engines": { @@ -10885,6 +10718,15 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "license": "MIT" }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, "node_modules/micromark": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", @@ -11658,7 +11500,6 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, "license": "MIT", "dependencies": { "braces": "^3.0.3", @@ -11672,7 +11513,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", - "dev": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -11683,7 +11523,7 @@ }, "node_modules/mime-db": { "version": "1.54.0", - "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.54.0.tgz", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", "license": "MIT", "engines": { @@ -11692,7 +11532,7 @@ }, "node_modules/mime-types": { "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", "license": "MIT", "dependencies": { @@ -11729,15 +11569,15 @@ } }, "node_modules/miniflare": { - "version": "4.20260714.0", - "resolved": "https://registry.npmmirror.com/miniflare/-/miniflare-4.20260714.0.tgz", - "integrity": "sha512-MYlTCLdWCPqvrYY2uLwOjXwmglXuiHE3TGGkbOW4BwjUPa1r07E0iuHwrNDIs/sxK21r+o90Jx58AV2KeNdJZw==", + "version": "4.20260722.0", + "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-4.20260722.0.tgz", + "integrity": "sha512-LW6ABMhCx/yIEFBLC/DO4yAhdm2T/G7jp7pr5T2kj895+CCIaHZqpMXdW9O6YE48LcYcCJChwWc8aEs1vpbTXw==", "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "0.8.1", - "sharp": "0.34.5", + "sharp": "0.35.2", "undici": "7.28.0", - "workerd": "1.20260714.1", + "workerd": "1.20260722.1", "ws": "8.21.0", "youch": "4.1.0-beta.10" }, @@ -11763,27 +11603,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/minimatch/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/minimatch/node_modules/brace-expansion": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.7.tgz", - "integrity": "sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - } - }, "node_modules/minipass": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", @@ -11795,7 +11614,7 @@ }, "node_modules/mkdirp": { "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "license": "MIT", "bin": { @@ -11807,7 +11626,7 @@ }, "node_modules/mnemonist": { "version": "0.38.3", - "resolved": "https://registry.npmmirror.com/mnemonist/-/mnemonist-0.38.3.tgz", + "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.3.tgz", "integrity": "sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==", "license": "MIT", "dependencies": { @@ -11879,12 +11698,12 @@ } }, "node_modules/next": { - "version": "16.2.10", - "resolved": "https://registry.npmmirror.com/next/-/next-16.2.10.tgz", - "integrity": "sha512-2som5AVXb3kE6Yjine3/mNbBayYF58eguBWIVVUdr1y/L426xyVEgYxgBG+1QC34P2x5E+tcDup6XkuOAX3dCA==", + "version": "16.2.12", + "resolved": "https://registry.npmjs.org/next/-/next-16.2.12.tgz", + "integrity": "sha512-iD59eYQWmbFcEbX7v/acG5DRym9iw1DdaPoD0WTA920naWsE25wShzJW4+UvAs8MK9EC2kBfIH6vtto1H1PHGw==", "license": "MIT", "dependencies": { - "@next/env": "16.2.10", + "@next/env": "16.2.12", "@swc/helpers": "0.5.15", "baseline-browser-mapping": "^2.9.19", "caniuse-lite": "^1.0.30001579", @@ -11898,14 +11717,14 @@ "node": ">=20.9.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "16.2.10", - "@next/swc-darwin-x64": "16.2.10", - "@next/swc-linux-arm64-gnu": "16.2.10", - "@next/swc-linux-arm64-musl": "16.2.10", - "@next/swc-linux-x64-gnu": "16.2.10", - "@next/swc-linux-x64-musl": "16.2.10", - "@next/swc-win32-arm64-msvc": "16.2.10", - "@next/swc-win32-x64-msvc": "16.2.10", + "@next/swc-darwin-arm64": "16.2.12", + "@next/swc-darwin-x64": "16.2.12", + "@next/swc-linux-arm64-gnu": "16.2.12", + "@next/swc-linux-arm64-musl": "16.2.12", + "@next/swc-linux-x64-gnu": "16.2.12", + "@next/swc-linux-x64-musl": "16.2.12", + "@next/swc-win32-arm64-msvc": "16.2.12", + "@next/swc-win32-x64-msvc": "16.2.12", "sharp": "^0.34.5" }, "peerDependencies": { @@ -12077,7 +11896,7 @@ }, "node_modules/object-inspect": { "version": "1.13.4", - "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.4.tgz", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "license": "MIT", "engines": { @@ -12098,7 +11917,7 @@ }, "node_modules/obliterator": { "version": "1.6.1", - "resolved": "https://registry.npmmirror.com/obliterator/-/obliterator-1.6.1.tgz", + "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-1.6.1.tgz", "integrity": "sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig==", "license": "MIT" }, @@ -12115,7 +11934,7 @@ }, "node_modules/on-finished": { "version": "2.4.1", - "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "license": "MIT", "dependencies": { @@ -12127,7 +11946,7 @@ }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "license": "ISC", "dependencies": { @@ -12260,7 +12079,7 @@ }, "node_modules/parseurl": { "version": "1.3.3", - "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "license": "MIT", "engines": { @@ -12309,6 +12128,15 @@ "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", "license": "MIT" }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/pathe": { "version": "2.0.3", "resolved": "https://registry.npmmirror.com/pathe/-/pathe-2.0.3.tgz", @@ -12451,7 +12279,7 @@ }, "node_modules/proxy-addr": { "version": "2.0.7", - "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "license": "MIT", "dependencies": { @@ -12475,7 +12303,7 @@ }, "node_modules/qs": { "version": "6.15.3", - "resolved": "https://registry.npmmirror.com/qs/-/qs-6.15.3.tgz", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz", "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==", "license": "BSD-3-Clause", "dependencies": { @@ -12489,9 +12317,29 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/range-parser": { "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.3.0.tgz", "integrity": "sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==", "license": "MIT", "engines": { @@ -12504,7 +12352,7 @@ }, "node_modules/raw-body": { "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", "license": "MIT", "dependencies": { @@ -12961,6 +12809,16 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, "node_modules/rfdc": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", @@ -13004,7 +12862,7 @@ }, "node_modules/router": { "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/router/-/router-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", "license": "MIT", "dependencies": { @@ -13020,7 +12878,7 @@ }, "node_modules/router/node_modules/path-to-regexp": { "version": "8.4.2", - "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-8.4.2.tgz", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", "license": "MIT", "funding": { @@ -13028,9 +12886,32 @@ "url": "https://opencollective.com/express" } }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "license": "MIT" }, @@ -13055,9 +12936,9 @@ } }, "node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -13068,7 +12949,7 @@ }, "node_modules/send": { "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/send/-/send-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", "license": "MIT", "dependencies": { @@ -13094,7 +12975,7 @@ }, "node_modules/serve-static": { "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-2.2.1.tgz", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", "license": "MIT", "dependencies": { @@ -13113,52 +12994,52 @@ }, "node_modules/setprototypeof": { "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "license": "ISC" }, "node_modules/sharp": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", - "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", - "hasInstallScript": true, + "version": "0.35.2", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.2.tgz", + "integrity": "sha512-FVtFjtBCMiJS6yb5CX7Sop45WFMpeGw6oRKuJnXYgf/f1ms/D7LE/ZUSNxnW7rZ/dbslQWYkoqFHGPaDBtaK4w==", "license": "Apache-2.0", "dependencies": { - "@img/colour": "^1.0.0", + "@img/colour": "^1.1.0", "detect-libc": "^2.1.2", - "semver": "^7.7.3" + "semver": "^7.8.4" }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.34.5", - "@img/sharp-darwin-x64": "0.34.5", - "@img/sharp-libvips-darwin-arm64": "1.2.4", - "@img/sharp-libvips-darwin-x64": "1.2.4", - "@img/sharp-libvips-linux-arm": "1.2.4", - "@img/sharp-libvips-linux-arm64": "1.2.4", - "@img/sharp-libvips-linux-ppc64": "1.2.4", - "@img/sharp-libvips-linux-riscv64": "1.2.4", - "@img/sharp-libvips-linux-s390x": "1.2.4", - "@img/sharp-libvips-linux-x64": "1.2.4", - "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", - "@img/sharp-libvips-linuxmusl-x64": "1.2.4", - "@img/sharp-linux-arm": "0.34.5", - "@img/sharp-linux-arm64": "0.34.5", - "@img/sharp-linux-ppc64": "0.34.5", - "@img/sharp-linux-riscv64": "0.34.5", - "@img/sharp-linux-s390x": "0.34.5", - "@img/sharp-linux-x64": "0.34.5", - "@img/sharp-linuxmusl-arm64": "0.34.5", - "@img/sharp-linuxmusl-x64": "0.34.5", - "@img/sharp-wasm32": "0.34.5", - "@img/sharp-win32-arm64": "0.34.5", - "@img/sharp-win32-ia32": "0.34.5", - "@img/sharp-win32-x64": "0.34.5" + "@img/sharp-darwin-arm64": "0.35.2", + "@img/sharp-darwin-x64": "0.35.2", + "@img/sharp-freebsd-wasm32": "0.35.2", + "@img/sharp-libvips-darwin-arm64": "1.3.1", + "@img/sharp-libvips-darwin-x64": "1.3.1", + "@img/sharp-libvips-linux-arm": "1.3.1", + "@img/sharp-libvips-linux-arm64": "1.3.1", + "@img/sharp-libvips-linux-ppc64": "1.3.1", + "@img/sharp-libvips-linux-riscv64": "1.3.1", + "@img/sharp-libvips-linux-s390x": "1.3.1", + "@img/sharp-libvips-linux-x64": "1.3.1", + "@img/sharp-libvips-linuxmusl-arm64": "1.3.1", + "@img/sharp-libvips-linuxmusl-x64": "1.3.1", + "@img/sharp-linux-arm": "0.35.2", + "@img/sharp-linux-arm64": "0.35.2", + "@img/sharp-linux-ppc64": "0.35.2", + "@img/sharp-linux-riscv64": "0.35.2", + "@img/sharp-linux-s390x": "0.35.2", + "@img/sharp-linux-x64": "0.35.2", + "@img/sharp-linuxmusl-arm64": "0.35.2", + "@img/sharp-linuxmusl-x64": "0.35.2", + "@img/sharp-webcontainers-wasm32": "0.35.2", + "@img/sharp-win32-arm64": "0.35.2", + "@img/sharp-win32-ia32": "0.35.2", + "@img/sharp-win32-x64": "0.35.2" } }, "node_modules/shebang-command": { @@ -13184,7 +13065,7 @@ }, "node_modules/side-channel": { "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", "license": "MIT", "dependencies": { @@ -13203,7 +13084,7 @@ }, "node_modules/side-channel-list": { "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/side-channel-list/-/side-channel-list-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", "license": "MIT", "dependencies": { @@ -13219,7 +13100,7 @@ }, "node_modules/side-channel-map": { "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/side-channel-map/-/side-channel-map-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "license": "MIT", "dependencies": { @@ -13237,7 +13118,7 @@ }, "node_modules/side-channel-weakmap": { "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "license": "MIT", "dependencies": { @@ -13282,6 +13163,15 @@ "node": ">= 10" } }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/slice-ansi": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", @@ -13377,7 +13267,7 @@ }, "node_modules/statuses": { "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.2.tgz", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "license": "MIT", "engines": { @@ -13540,20 +13430,6 @@ "node": ">=6" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/style-to-js": { "version": "1.1.21", "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz", @@ -13599,7 +13475,7 @@ }, "node_modules/supports-color": { "version": "10.2.2", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-10.2.2.tgz", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", "license": "MIT", "engines": { @@ -13714,7 +13590,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -13725,7 +13600,7 @@ }, "node_modules/toidentifier": { "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "license": "MIT", "engines": { @@ -14297,7 +14172,7 @@ }, "node_modules/type-is": { "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/type-is/-/type-is-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz", "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==", "license": "MIT", "dependencies": { @@ -14315,7 +14190,7 @@ }, "node_modules/type-is/node_modules/content-type": { "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/content-type/-/content-type-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz", "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==", "license": "MIT", "engines": { @@ -14342,7 +14217,7 @@ }, "node_modules/undici": { "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/undici/-/undici-7.28.0.tgz", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.28.0.tgz", "integrity": "sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==", "license": "MIT", "engines": { @@ -14488,7 +14363,7 @@ }, "node_modules/unpipe": { "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "license": "MIT", "engines": { @@ -14508,7 +14383,7 @@ }, "node_modules/urlpattern-polyfill": { "version": "10.1.0", - "resolved": "https://registry.npmmirror.com/urlpattern-polyfill/-/urlpattern-polyfill-10.1.0.tgz", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.1.0.tgz", "integrity": "sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==", "license": "MIT" }, @@ -14597,7 +14472,7 @@ }, "node_modules/vary": { "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "license": "MIT", "engines": { @@ -15124,24 +14999,6 @@ "node": ">=18" } }, - "node_modules/vitest/node_modules/@esbuild/openharmony-arm64": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", - "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "peer": true, - "engines": { - "node": ">=18" - } - }, "node_modules/vitest/node_modules/@esbuild/sunos-x64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", @@ -15506,9 +15363,9 @@ } }, "node_modules/workerd": { - "version": "1.20260714.1", - "resolved": "https://registry.npmmirror.com/workerd/-/workerd-1.20260714.1.tgz", - "integrity": "sha512-oIbQzfdyl9UQUnG6XLegcSq0Mgt/7WKDbFOoqGgOWCS+/fhyGB460uKEgdAQQ9RHCO/ttcNCX/KiMIQzdoeu3Q==", + "version": "1.20260722.1", + "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20260722.1.tgz", + "integrity": "sha512-NycKuc1x2onvsRfGGpM093vRlLFU2zHDAM0+APpccfg4+gZxDGCH27RmdDvkeBuoZyYqgLo3oAfF6re4mvC3vQ==", "hasInstallScript": true, "license": "Apache-2.0", "bin": { @@ -15518,27 +15375,27 @@ "node": ">=16" }, "optionalDependencies": { - "@cloudflare/workerd-darwin-64": "1.20260714.1", - "@cloudflare/workerd-darwin-arm64": "1.20260714.1", - "@cloudflare/workerd-linux-64": "1.20260714.1", - "@cloudflare/workerd-linux-arm64": "1.20260714.1", - "@cloudflare/workerd-windows-64": "1.20260714.1" + "@cloudflare/workerd-darwin-64": "1.20260722.1", + "@cloudflare/workerd-darwin-arm64": "1.20260722.1", + "@cloudflare/workerd-linux-64": "1.20260722.1", + "@cloudflare/workerd-linux-arm64": "1.20260722.1", + "@cloudflare/workerd-windows-64": "1.20260722.1" } }, "node_modules/wrangler": { - "version": "4.112.0", - "resolved": "https://registry.npmmirror.com/wrangler/-/wrangler-4.112.0.tgz", - "integrity": "sha512-5H+XUD0TySCv1LuktFHDIEOkboH2nTfQs+35L+USt3MtntjDTMVIJprLgQcL2WBjulOyjxpd1vyTiSTJVW5MjQ==", + "version": "4.114.0", + "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-4.114.0.tgz", + "integrity": "sha512-M65P25t5UHA1TIJfgZXDcj+YzVobgKdRguM2QPz0xnxLFuOcuE3ErgllDht0iaho7MS4o0g/Bb4YK2+GT+bibg==", "license": "MIT OR Apache-2.0", "dependencies": { "@cloudflare/kv-asset-handler": "0.5.0", "@cloudflare/unenv-preset": "2.16.1", "blake3-wasm": "2.1.5", "esbuild": "0.28.1", - "miniflare": "4.20260714.0", + "miniflare": "4.20260722.0", "path-to-regexp": "6.3.0", "unenv": "2.0.0-rc.24", - "workerd": "1.20260714.1" + "workerd": "1.20260722.1" }, "bin": { "cf-wrangler": "bin/cf-wrangler.js", @@ -15552,7 +15409,7 @@ "fsevents": "2.3.3" }, "peerDependencies": { - "@cloudflare/workers-types": "^5.20260714.1" + "@cloudflare/workers-types": "^5.20260722.1" }, "peerDependenciesMeta": { "@cloudflare/workers-types": { @@ -16097,13 +15954,13 @@ }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "license": "ISC" }, "node_modules/ws": { "version": "8.21.0", - "resolved": "https://registry.npmmirror.com/ws/-/ws-8.21.0.tgz", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", "license": "MIT", "engines": { @@ -16239,7 +16096,7 @@ }, "node_modules/youch": { "version": "4.1.0-beta.10", - "resolved": "https://registry.npmmirror.com/youch/-/youch-4.1.0-beta.10.tgz", + "resolved": "https://registry.npmjs.org/youch/-/youch-4.1.0-beta.10.tgz", "integrity": "sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==", "license": "MIT", "dependencies": { @@ -16252,7 +16109,7 @@ }, "node_modules/youch-core": { "version": "0.3.3", - "resolved": "https://registry.npmmirror.com/youch-core/-/youch-core-0.3.3.tgz", + "resolved": "https://registry.npmjs.org/youch-core/-/youch-core-0.3.3.tgz", "integrity": "sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==", "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 30ff6737..5d4af954 100644 --- a/package.json +++ b/package.json @@ -114,6 +114,10 @@ "node": "^22.0.0" }, "overrides": { + "@node-minify/core": "8.0.5", + "next": { + "sharp": "0.35.2" + }, "postcss": "^8.5.19" }, "browserslist": [