Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 1.13.0 · 2026-07-23 19:59 UTC

vava-nessa / free-coding-models

Find, benchmark and install in CLI 170+ FREE coding LLM models across 15+ providers in real time

HTML · JavaScriptLicencia propia★ 2186 estrellas⑂ 238 forksdesde feb 2026Ver en GitHub ↗

vava-nessa/free-coding-models tiene un índice de salud de 71 sobre 100, lo que lo sitúa en la banda Bueno. Su puntuación más alta es Vitality (87/100) y la más baja, Security (58/100). Se actualizó por última vez hace 3 días. Una sola persona concentra la mayor parte del trabajo reciente.

71
global / 100
Bueno

Índice de salud del software

Las métricas se agrupan en categorías ponderadas sobre una escala de 1 a 100. El resultado global parte de su media; cuando la evidencia pública activa la Política de Jurisdicciones de Alto Riesgo, la calificación se ajusta y recibe el límite 49 (En riesgo). Preparación para IA queda fuera.

71
Excelente85-100Ejemplar; cumple prácticamente todos los criterios evaluados
Bueno70-84Saludable; carencias menores
Moderado50-69Aceptable con carencias notables; se recomienda revisión
En riesgo30-49Debilidades significativas; su adopción exige cautela
Crítico1-29Problemas graves (proyecto abandonado, un solo mantenedor, sin higiene)
VitalidadComunidad yAdopciónSostenibilidady GobernanzaCalidad deIngenieríaSeguridadPreparaciónpara IA

Perfil de puntuación

Cada eje es una categoría. La forma importa más que la media: un proyecto sano llena toda la figura, mientras que un perfil de picos y cráteres indica que la fortaleza en una dimensión enmascara el riesgo en otra.

Titularidad

Vanessa DeprauteCuenta personal
123 seguidores10 repositorios públicosdesde sept 2013Freelancer

Este repositorio pertenece a una cuenta personal. Un proyecto con un único propietario conlleva más riesgo de continuidad que uno respaldado por una organización.

Ecosistemas de paquetes

RegistroPaqueteVersiónDescargas / mesVersionesÚltima publicaciónEtiquetas
npmfree-coding-models0.5.505344214hace 5 díasnvidianimllmcliaimodelsbenchmarklatencyavailabilitydeepseekqwenllamamistralglmkimigptchatgptopenaiapi

Métricas por categoría

Vitalidad

¿Está vivo el proyecto: se escribe código y se publican versiones?

87Excelente · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 3 días
14.5/36Cadencia de commits — 21/52 semanas con commits
18/18Volumen de commits — 599 commits en el último año
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 13 issue activity found in the last 90 days -- score normalized to 10
Datos de entrada utilizados
commits_last_year599
human_commit_share0,92
days_since_last_push3
active_weeks_last_year21
Cómo se puntúa
27/27Publica versiones — 100 versiones publicadas
36/36Recencia de las versiones — última versión hace 5 días
27/27Cadencia de publicación — una versión cada ~1,2 días
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count100
latest_release_tagv0.5.50
releases_from_tagsno
days_since_latest_release5
mean_days_between_releases1,2
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: Signed-Releases. Los pesos restantes se han renormalizado.

Comunidad y Adopción

¿Tiene el proyecto usuarios, descargas, atención y unas condiciones acogedoras para quienes contribuyen?

63Moderado · 18% del índice global
Cómo se puntúa
54.2/60Estrellas — 2186 estrellas
19.8/25Forks — 238 forks
6.8/15Observadores — 18 observadores
Datos de entrada utilizados
forks238
stars2186
watchers18
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
22.5/22.5README
16.9/22.5Licencia — archivo de licencia presente, no es una licencia reconocida
0/18Guía CONTRIBUTING
0/13.5Código de conducta
0/7.2Plantilla de issues
0/6.3Plantilla de PR
Datos de entrada utilizados
has_readme
has_license
has_contributingno
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno
Cómo se puntúa
49.7/80Descargas mensuales — 5344 descargas/mes en npm
0/20Dependientes en el registro — no lo informa este ecosistema
Datos de entrada utilizados
packagesfree-coding-models
dependents
ecosystemsnpm
total_downloads
monthly_downloads5344
Excluidos de la puntuación (sin datos o no aplicable): Dependientes en el registro. Los pesos restantes se han renormalizado.

Sostenibilidad y Gobernanza

¿Sobrevivirá el proyecto a sus personas: factor bus, capacidad de respuesta, quién lo respalda y mantenimiento del paquete?

59Moderado · 24% del índice global
Cómo se puntúa
9/54Factor bus — la mitad de los commits recae en 1 contribuyente(s)
2/22.5Distribución de commits — el principal contribuyente firma el 91% de los commits
13.5/13.5Amplitud de contribuyentes — 10 contribuyentes
10/10OpenSSF Scorecard: Contributors — project has 3 contributing companies or organizations -- score normalized to 10
Datos de entrada utilizados
bus_factor1
contributors_sampled10
top_contributor_share0,913
Cómo se puntúa
33.5/46.8Resolución de issues — 72% de issues cerradas
23.6/38.3Aceptación de PR — 42/68 PR decididos fusionados
1.5/15OpenSSF Scorecard: Code-Review — Found 3/30 approved changesets -- score normalized to 1
Datos de entrada utilizados
merged_prs42
open_issues17
closed_issues43
issue_closed_ratio0,717
closed_unmerged_prs26
Cómo se puntúa
10/30Respaldo de la propiedad — cuenta personal (usuario)
0/20Dominio verificado — no aplicable a cuentas de usuario
15.1/25Alcance del propietario — 123 seguidores de vava-nessa
19.6/25Trayectoria — 10 repos públicos, cuenta de ~12 años
Datos de entrada utilizados
followers123
owner_typeUser
is_verified
owner_loginvava-nessa
public_repos10
account_age_days4693
Excluidos de la puntuación (sin datos o no aplicable): Dominio verificado. Los pesos restantes se han renormalizado.
Cómo se puntúa
25/25Publicado y resoluble — 1 paquete(s) en npm
35/35Recencia de publicación — última publicación hace 5 días
20/20Historial de versiones — 214 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packagesfree-coding-models
ecosystemsnpm
any_deprecatedno
min_days_since_publish5

Calidad de Ingeniería

¿Existen unas prácticas mínimas de ingeniería y documentación?

86Excelente · 20% del índice global
Cómo se puntúa
24/24Flujos de trabajo de CI — 7 flujo(s) de trabajo
24/24Pruebas presentes
16/16Configuración de linter — biome.json
0/9.6Hooks de pre-commit
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 3 out of 3 merged PRs checked by a CI test -- score normalized to 10
Datos de entrada utilizados
has_ci
has_tests
has_editorconfigno
has_linter_config
has_precommit_configno

Documentación

90Excelente
Cómo se puntúa
30/30README
25/25Directorio de documentación
15/15Sitio de documentación / página del proyecto — https://freecodingmodels.vercel.app
10/10Descripción del repositorio
10/10Topics — 15 topics
0/10Wiki
Datos de entrada utilizados
topicsai, deepseek, free, free-ai, freeai, gpt, gptoss, kimi, nim, nvidia, nvidia-nim, nvidia-nim-api, nvidia-nims, openclaw, opencode
has_wikino
homepagehttps://freecodingmodels.vercel.app
has_readme
has_docs_dir
has_description

Seguridad

¿Son sólidas las prácticas visibles de seguridad y de cadena de suministro, sin exposición jurisdiccional de alto riesgo sin resolver?

58Moderado · 16% del índice global
Cómo se puntúa
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
2.5/2.5CI-Tests — 3 out of 3 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0.8/7.5Code-Review — Found 3/30 approved changesets -- score normalized to 1
2.5/2.5Contributors — project has 3 contributing companies or organizations -- score normalized to 10
0/10Dangerous-Workflow — dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.2/2.5Licencia — license file detected
7.5/7.5Maintained — 30 commit(s) and 13 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — sin datos
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
6/7.5Vulnerabilities — 2 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate4,8
Excluidos de la puntuación (sin datos o no aplicable): signed_releases. Los pesos restantes se han renormalizado.
Cómo se puntúa
35/35Dependencias directas libres de avisos conocidos — ninguna dependencia directa tiene un aviso conocido
0/25Dependencias indirectas libres de avisos conocidos — el conjunto transitivo no es separable de las dependencias de desarrollo y prueba en este alcance
0/40Sin avisos pendientes — ningún aviso tiene fecha de publicación
Datos de entrada utilizados
sourceosv
advisories2
affected_packages2
assessed_packages393
unassessed_packages22
affected_by_severityhigh 2
direct_affected_packages0
Excluidos de la puntuación (sin datos o no aplicable): Dependencias indirectas libres de avisos conocidos, Sin avisos pendientes. Los pesos restantes se han renormalizado. Se cotejaron 393 dependencias resueltas con OSV. 22 no pudieron evaluarse: sin versión resuelta, ecosistema no admitido o fuera de la lista de paquetes informada. Este repositorio no publica ningún paquete que el índice resuelva, por lo que se evaluó en su lugar el grafo de dependencias del repositorio. Ese grafo mezcla fijaciones de desarrollo y prueba con las dependencias distribuidas, de modo que solo se puntúan las dependencias declaradas en tiempo de ejecución; los hallazgos transitivos se informan como contexto y quedan excluidos de la puntuación. No se analiza la alcanzabilidad.

Preparación para IA

¿Hasta qué punto está el repositorio preparado para desarrollarse y mantenerse con agentes de codificación de IA? Es una insignia independiente y experimental — peso 0,0, de modo que se presenta por separado y no afecta a la puntuación de salud global.

68Moderado · 0% del índice global
Cómo se puntúa
45/45Instrucciones para agentes — AGENTS.md, CLAUDE.md
0/15Documentación legible por máquinas (llms.txt)
23.8/40Historial de commits legible — 41 de 92 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share0,446
agent_instruction_filesAGENTS.md, CLAUDE.md
agent_instruction_max_bytes14.156
Cómo se puntúa
0/18Arranque con un solo comando
22/22Pruebas automatizadas
11/11Configuración de lint / formato — biome.json
11/11Verificación estática de tipos — website/tsconfig.json
10/10Entorno reproducible — Dockerfile, lockfile
0/10Práctica demostrada con agentes — ningún commit con autoría de agente entre los últimos 100
8/8Mantenimiento automatizado — 8 de los últimos 100 commits son actualizaciones automáticas de dependencias
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Datos de entrada utilizados
has_nixno
has_tests
lockfilespackage-lock.json, pnpm-lock.yaml
has_dockerfile
typed_languageno
bootstrap_files
has_devcontainerno
has_linter_config
typecheck_configswebsite/tsconfig.json
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0,08
Cómo se puntúa
27/45Código verificable por tipos — HTML con configuración de verificación de tipos (website/tsconfig.json)
53.4/55Tamaños de archivo manejables — 5/171 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageHTML
largest_source_bytes279.662
source_files_sampled171
oversized_source_files5

Datos clave

2186estrellas de GitHub
10contribuidores
599commits en los últimos 12 meses
3días desde el último push
100versiones publicadas
1factor bus
17issues abiertas
npmecosistemas de paquetes

Advertencias de recopilación de datos

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • Could not fetch npm package 'fcm-pi' from its registry
  • Could not fetch npm package 'fcm-opencode' from its registry
  • deps.dev does not index npm:free-coding-models@0.5.50; advisories assessed against the repository dependency graph instead

Más detalle

Historial de estrellas y forks 0 ★ / 238 ⇿
0Estrellas
238Forks
100Versiones

Cuándo se añadió cada estrella y fork, recopilado de GitHub y agrupado por día. El crecimiento acumulado se sitúa justo encima de las adiciones diarias que lo componen, de modo que ambos se leen en conjunto: la acumulación orgánica sostenida no se parece en nada a un pico abrupto y efímero. Cuando esa diferencia es medible, se informa como autenticidad del crecimiento.

04080120160200240238252026-022026-052026-07
Mayor 0Menor 2Parche 98
OpenSSF Scorecard 4.8 / 10
4.8agregado

Evaluación de seguridad independiente y agnóstica en cuanto a herramientas, procedente del proyecto de código abierto OpenSSF Scorecard. Cada comprobación premia una práctica de seguridad, no la herramienta de un proveedor concreto. Las comprobaciones que Scorecard no pudo determinar se marcan como n/d y se excluyen de la puntuación de seguridad (nunca se cuentan como cero).Scorecard v5.5.0 · 2026-07-23 19:59 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
10CI-Tests3 out of 3 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
1Code-ReviewFound 3/30 approved changesets -- score normalized to 1
10Contributorsproject has 3 contributing companies or organizations -- score normalized to 10
0Dangerous-Workflowdangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
9Licenselicense file detected
10Maintained30 commit(s) and 13 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
10Security-Policysecurity policy file detected
n/dSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
8Vulnerabilities2 existing vulnerabilities detected
Dependencias directas 22
RegistroPaqueteRestricción de versiónManifiesto
npm@tabler/icons-react^3.44.0package.json
npm@tanstack/react-table^8.21.3package.json
npmchalk^5.6.2package.json
npmkandown^0.8.0package.json
npmsocket.io^4.8.3package.json
npmsocket.io-client^4.8.3package.json
npm@tanstack/react-virtual^3.14.2package.json
npm@fontsource-variable/geist^5.2.9website/package.json
npm@fontsource-variable/geist-mono^5.2.8website/package.json
npm@tailwindcss/vite^4.1.18website/package.json
npm@tanstack/react-devtoolslatestwebsite/package.json
npm@tanstack/react-routerlatestwebsite/package.json
npm@tanstack/react-router-devtoolslatestwebsite/package.json
npm@tanstack/react-router-ssr-querylatestwebsite/package.json
npm@tanstack/react-startlatestwebsite/package.json
npm@tanstack/router-plugin^1.132.0website/package.json
npmclsx^2.1.1website/package.json
npmlucide-react^0.545.0website/package.json
npmreact^19.2.0website/package.json
npmreact-dom^19.2.0website/package.json
npmtailwind-merge^3.6.0website/package.json
npmtailwindcss^4.1.18website/package.json
Todas las dependencias 415

Conjunto completo de dependencias resueltas según el grafo de dependencias de GitHub: 29 paquetes directos y 386 indirectos (transitivos). El cierre transitivo es completo cuando el repositorio incluye un lockfile.

RegistroPaqueteVersiónRelación
npm@fontsource-variable/geist^5.2.9directa
npm@fontsource-variable/geist-mono^5.2.8directa
npm@tabler/icons-react3.44.0directa
npm@tailwindcss/vite^4.1.18directa
npm@tanstack/react-devtoolslatestdirecta
npm@tanstack/react-routerlatestdirecta
npm@tanstack/react-router-devtoolslatestdirecta
npm@tanstack/react-router-ssr-querylatestdirecta
npm@tanstack/react-startlatestdirecta
npm@tanstack/react-table8.21.3directa
npm@tanstack/react-virtual3.14.3directa
npm@tanstack/router-plugin^1.132.0directa
npmchalk5.6.2directa
npmchalk^4.1.2directa
npmclsx2.1.1directa
npmclsx^2.1.1directa
npmkandown0.4.0directa
npmkandown0.8.0directa
npmlucide-react1.8.0directa
npmlucide-react^0.545.0directa
npmreact19.2.7directa
npmreact^19.2.0directa
npmreact-dom19.2.7directa
npmreact-dom^19.2.0directa
npmsocket.io4.8.3directa
npmsocket.io-client4.8.3directa
npmtailwind-merge3.5.0directa
npmtailwind-merge^3.6.0directa
npmtailwindcss^4.1.18directa
npm@babel/runtime7.29.7indirecta
npm@biomejs/biome2.4.5indirecta
npm@blocknote/code-block0.49.0indirecta
npm@blocknote/core0.49.0indirecta
npm@blocknote/mantine0.49.0indirecta
npm@blocknote/react0.49.0indirecta
npm@emnapi/core1.10.0indirecta
npm@emnapi/runtime1.10.0indirecta
npm@emnapi/wasi-threads1.2.1indirecta
npm@emoji-mart/data1.2.1indirecta
npm@floating-ui/core1.7.5indirecta
npm@floating-ui/dom1.7.6indirecta
npm@floating-ui/react0.27.19indirecta
npm@floating-ui/react-dom2.1.8indirecta
npm@floating-ui/utils0.2.11indirecta
npm@handlewithcare/prosemirror-inputrules0.1.4indirecta
npm@mantine/core8.3.18indirecta
npm@mantine/hooks8.3.18indirecta
npm@mantine/utils6.0.22indirecta
npm@napi-rs/wasm-runtime1.1.4indirecta
npm@oxc-project/runtime0.133.0indirecta
npm@oxc-project/types0.133.0indirecta
npm@oxfmt/binding-android-arm-eabi0.52.0indirecta
npm@oxfmt/binding-android-arm640.52.0indirecta
npm@oxfmt/binding-darwin-arm640.52.0indirecta
npm@oxfmt/binding-darwin-x640.52.0indirecta
npm@oxfmt/binding-freebsd-x640.52.0indirecta
npm@oxfmt/binding-linux-arm-gnueabihf0.52.0indirecta
npm@oxfmt/binding-linux-arm-musleabihf0.52.0indirecta
npm@oxfmt/binding-linux-arm64-gnu0.52.0indirecta
npm@oxfmt/binding-linux-arm64-musl0.52.0indirecta
npm@oxfmt/binding-linux-ppc64-gnu0.52.0indirecta
npm@oxfmt/binding-linux-riscv64-gnu0.52.0indirecta
npm@oxfmt/binding-linux-riscv64-musl0.52.0indirecta
npm@oxfmt/binding-linux-s390x-gnu0.52.0indirecta
npm@oxfmt/binding-linux-x64-gnu0.52.0indirecta
npm@oxfmt/binding-linux-x64-musl0.52.0indirecta
npm@oxfmt/binding-openharmony-arm640.52.0indirecta
npm@oxfmt/binding-win32-arm64-msvc0.52.0indirecta
npm@oxfmt/binding-win32-ia32-msvc0.52.0indirecta
npm@oxfmt/binding-win32-x64-msvc0.52.0indirecta
npm@oxlint-tsgolint/darwin-arm640.23.0indirecta
npm@oxlint-tsgolint/darwin-x640.23.0indirecta
npm@oxlint-tsgolint/linux-arm640.23.0indirecta
npm@oxlint-tsgolint/linux-x640.23.0indirecta
npm@oxlint-tsgolint/win32-arm640.23.0indirecta
npm@oxlint-tsgolint/win32-x640.23.0indirecta
npm@oxlint/binding-android-arm-eabi1.67.0indirecta
npm@oxlint/binding-android-arm641.67.0indirecta
npm@oxlint/binding-darwin-arm641.67.0indirecta
npm@oxlint/binding-darwin-x641.67.0indirecta
npm@oxlint/binding-freebsd-x641.67.0indirecta
npm@oxlint/binding-linux-arm-gnueabihf1.67.0indirecta
npm@oxlint/binding-linux-arm-musleabihf1.67.0indirecta
npm@oxlint/binding-linux-arm64-gnu1.67.0indirecta
npm@oxlint/binding-linux-arm64-musl1.67.0indirecta
npm@oxlint/binding-linux-ppc64-gnu1.67.0indirecta
npm@oxlint/binding-linux-riscv64-gnu1.67.0indirecta
npm@oxlint/binding-linux-riscv64-musl1.67.0indirecta
npm@oxlint/binding-linux-s390x-gnu1.67.0indirecta
npm@oxlint/binding-linux-x64-gnu1.67.0indirecta
npm@oxlint/binding-linux-x64-musl1.67.0indirecta
npm@oxlint/binding-openharmony-arm641.67.0indirecta
npm@oxlint/binding-win32-arm64-msvc1.67.0indirecta
npm@oxlint/binding-win32-ia32-msvc1.67.0indirecta
npm@oxlint/binding-win32-x64-msvc1.67.0indirecta
npm@oxlint/plugins1.61.0indirecta
npm@polka/url1.0.0-next.29indirecta
npm@radix-ui/react-compose-refs1.1.2indirecta
npm@radix-ui/react-slot1.2.4indirecta
npm@rolldown/binding-android-arm641.0.3indirecta
npm@rolldown/binding-darwin-arm641.0.3indirecta
npm@rolldown/binding-darwin-x641.0.3indirecta
npm@rolldown/binding-freebsd-x641.0.3indirecta
npm@rolldown/binding-linux-arm-gnueabihf1.0.3indirecta
npm@rolldown/binding-linux-arm64-gnu1.0.3indirecta
npm@rolldown/binding-linux-arm64-musl1.0.3indirecta
npm@rolldown/binding-linux-ppc64-gnu1.0.3indirecta
npm@rolldown/binding-linux-s390x-gnu1.0.3indirecta
npm@rolldown/binding-linux-x64-gnu1.0.3indirecta
npm@rolldown/binding-linux-x64-musl1.0.3indirecta
npm@rolldown/binding-openharmony-arm641.0.3indirecta
npm@rolldown/binding-wasm32-wasi1.0.3indirecta
npm@rolldown/binding-win32-arm64-msvc1.0.3indirecta
npm@rolldown/binding-win32-x64-msvc1.0.3indirecta
npm@rolldown/pluginutils1.0.1indirecta
npm@shikijs/core4.2.0indirecta
npm@shikijs/engine-javascript4.2.0indirecta
npm@shikijs/langs-precompiled4.2.0indirecta
npm@shikijs/primitive4.2.0indirecta
npm@shikijs/themes4.2.0indirecta
npm@shikijs/types4.2.0indirecta
npm@shikijs/vscode-textmate10.0.2indirecta
npm@socket.io/component-emitter3.1.2indirecta
npm@standard-schema/spec1.1.0indirecta
npm@tabler/icons3.44.0indirecta
npm@tailwindcss/typography^0.5.16indirecta
npm@tanstack/devtools-vitelatestindirecta
npm@tanstack/react-store0.7.7indirecta
npm@tanstack/store0.7.7indirecta
npm@tanstack/table-core8.21.3indirecta
npm@tanstack/virtual-core3.17.1indirecta
npm@testing-library/dom^10.4.1indirecta
npm@testing-library/react^16.3.0indirecta
npm@tiptap/core3.25.0indirecta
npm@tiptap/core3.26.0indirecta
npm@tiptap/extension-bold3.25.0indirecta
npm@tiptap/extension-bold3.26.0indirecta
npm@tiptap/extension-bubble-menu3.25.0indirecta
npm@tiptap/extension-bubble-menu3.26.0indirecta
npm@tiptap/extension-code3.25.0indirecta
npm@tiptap/extension-code3.26.0indirecta
npm@tiptap/extension-floating-menu3.25.0indirecta
npm@tiptap/extension-floating-menu3.26.0indirecta
npm@tiptap/extension-horizontal-rule3.25.0indirecta
npm@tiptap/extension-horizontal-rule3.26.0indirecta
npm@tiptap/extension-italic3.25.0indirecta
npm@tiptap/extension-italic3.26.0indirecta
npm@tiptap/extension-paragraph3.25.0indirecta
npm@tiptap/extension-paragraph3.26.0indirecta
npm@tiptap/extension-strike3.25.0indirecta
npm@tiptap/extension-strike3.26.0indirecta
npm@tiptap/extension-text3.25.0indirecta
npm@tiptap/extension-text3.26.0indirecta
npm@tiptap/extension-underline3.25.0indirecta
npm@tiptap/extension-underline3.26.0indirecta
npm@tiptap/extensions3.25.0indirecta
npm@tiptap/extensions3.26.0indirecta
npm@tiptap/pm3.25.0indirecta
npm@tiptap/pm3.26.0indirecta
npm@tiptap/react3.25.0indirecta
npm@tiptap/react3.26.0indirecta
npm@tybys/wasm-util0.10.2indirecta
npm@types/chai5.2.3indirecta
npm@types/cors2.8.19indirecta
npm@types/debug4.1.13indirecta
npm@types/deep-eql4.0.2indirecta
npm@types/hast3.0.4indirecta
npm@types/mdast4.0.4indirecta
npm@types/ms2.1.0indirecta
npm@types/node25.9.1indirecta
npm@types/node^22.10.2indirecta
npm@types/react19.2.16indirecta
npm@types/react19.2.17indirecta
npm@types/react^19.2.0indirecta
npm@types/react-dom19.2.3indirecta
npm@types/react-dom^19.2.0indirecta
npm@types/unist3.0.3indirecta
npm@types/use-sync-external-store0.0.6indirecta
npm@types/use-sync-external-store1.5.0indirecta
npm@types/ws8.18.1indirecta
npm@ungap/structured-clone1.3.1indirecta
npm@vitejs/plugin-react6.0.2indirecta
npm@vitejs/plugin-react^6.0.1indirecta
npm@voidzero-dev/vite-plus-core0.1.24indirecta
npm@voidzero-dev/vite-plus-darwin-arm640.1.24indirecta
npm@voidzero-dev/vite-plus-darwin-x640.1.24indirecta
npm@voidzero-dev/vite-plus-linux-arm64-gnu0.1.24indirecta
npm@voidzero-dev/vite-plus-linux-arm64-musl0.1.24indirecta
npm@voidzero-dev/vite-plus-linux-x64-gnu0.1.24indirecta
npm@voidzero-dev/vite-plus-linux-x64-musl0.1.24indirecta
npm@voidzero-dev/vite-plus-test0.1.24indirecta
npm@voidzero-dev/vite-plus-win32-arm64-msvc0.1.24indirecta
npm@voidzero-dev/vite-plus-win32-x64-msvc0.1.24indirecta
npmaccepts1.3.8indirecta
npmassertion-error2.0.1indirecta
npmbail2.0.2indirecta
npmbase64id2.0.0indirecta
npmccount2.0.1indirecta
npmcharacter-entities2.0.2indirecta
npmcharacter-entities-html42.1.0indirecta
npmcharacter-entities-legacy3.0.0indirecta
npmchokidar4.0.3indirecta
npmclass-variance-authority0.7.1indirecta
npmcomma-separated-tokens2.0.3indirecta
npmcookie0.7.2indirecta
npmcors2.8.6indirecta
npmcsstype3.2.3indirecta
npmdebug4.4.3indirecta
npmdecode-named-character-reference1.3.0indirecta
npmdequal2.0.3indirecta
npmdetect-libc2.1.2indirecta
npmdetect-node-es1.1.0indirecta
npmdevlop1.1.0indirecta
npmemoji-mart5.6.0indirecta
npmengine.io6.6.8indirecta
npmengine.io-client6.6.5indirecta
npmengine.io-parser5.2.3indirecta
npmentities6.0.1indirecta
npmes-module-lexer1.7.0indirecta
npmescape-string-regexp5.0.0indirecta
npmextend3.0.2indirecta
npmfast-deep-equal3.1.3indirecta
npmfast-equals5.4.0indirecta
npmfdir6.5.0indirecta
npmfsevents2.3.3indirecta
npmget-nonce1.0.1indirecta
npmhast-util-embedded3.0.0indirecta
npmhast-util-format1.1.0indirecta
npmhast-util-from-dom5.0.1indirecta
npmhast-util-from-html2.0.3indirecta
npmhast-util-from-parse58.0.3indirecta
npmhast-util-has-property3.0.0indirecta
npmhast-util-is-body-ok-link3.0.1indirecta
npmhast-util-is-element3.0.0indirecta
npmhast-util-minify-whitespace1.0.1indirecta
npmhast-util-parse-selector4.0.0indirecta
npmhast-util-phrasing3.0.1indirecta
npmhast-util-to-html9.0.5indirecta
npmhast-util-to-mdast10.1.2indirecta
npmhast-util-to-text4.0.2indirecta
npmhast-util-whitespace3.0.0indirecta
npmhastscript9.0.1indirecta
npmhtml-void-elements3.0.0indirecta
npmhtml-whitespace-sensitive-tag-names3.0.1indirecta
npmis-plain-obj4.1.0indirecta
npmisomorphic.js0.2.5indirecta
npmjsdom^28.1.0indirecta
npmlib00.2.117indirecta
npmlightningcss1.32.0indirecta
npmlightningcss-android-arm641.32.0indirecta
npmlightningcss-darwin-arm641.32.0indirecta
npmlightningcss-darwin-x641.32.0indirecta
npmlightningcss-freebsd-x641.32.0indirecta
npmlightningcss-linux-arm-gnueabihf1.32.0indirecta
npmlightningcss-linux-arm64-gnu1.32.0indirecta
npmlightningcss-linux-arm64-musl1.32.0indirecta
npmlightningcss-linux-x64-gnu1.32.0indirecta
npmlightningcss-linux-x64-musl1.32.0indirecta
npmlightningcss-win32-arm64-msvc1.32.0indirecta
npmlightningcss-win32-x64-msvc1.32.0indirecta
npmlodash.merge4.6.2indirecta
npmlongest-streak3.1.0indirecta
npmmarkdown-table3.0.4indirecta
npmmdast-util-find-and-replace3.0.2indirecta
npmmdast-util-from-markdown2.0.3indirecta
npmmdast-util-gfm3.1.0indirecta
npmmdast-util-gfm-autolink-literal2.0.1indirecta
npmmdast-util-gfm-footnote2.1.0indirecta
npmmdast-util-gfm-strikethrough2.0.0indirecta
npmmdast-util-gfm-table2.0.0indirecta
npmmdast-util-gfm-task-list-item2.0.0indirecta
npmmdast-util-phrasing4.1.0indirecta
npmmdast-util-to-hast13.2.1indirecta
npmmdast-util-to-markdown2.1.2indirecta
npmmdast-util-to-string4.0.0indirecta
npmmicromark4.0.2indirecta
npmmicromark-core-commonmark2.0.3indirecta
npmmicromark-extension-gfm3.0.0indirecta
npmmicromark-extension-gfm-autolink-literal2.1.0indirecta
npmmicromark-extension-gfm-footnote2.1.0indirecta
npmmicromark-extension-gfm-strikethrough2.1.0indirecta
npmmicromark-extension-gfm-table2.1.1indirecta
npmmicromark-extension-gfm-tagfilter2.0.0indirecta
npmmicromark-extension-gfm-task-list-item2.1.0indirecta
npmmicromark-factory-destination2.0.1indirecta
npmmicromark-factory-label2.0.1indirecta
npmmicromark-factory-space2.0.1indirecta
npmmicromark-factory-title2.0.1indirecta
npmmicromark-factory-whitespace2.0.1indirecta
npmmicromark-util-character2.1.1indirecta
npmmicromark-util-chunked2.0.1indirecta
npmmicromark-util-classify-character2.0.1indirecta
npmmicromark-util-combine-extensions2.0.1indirecta
npmmicromark-util-decode-numeric-character-reference2.0.2indirecta
npmmicromark-util-decode-string2.0.1indirecta
npmmicromark-util-encode2.0.1indirecta
npmmicromark-util-html-tag-name2.0.1indirecta
npmmicromark-util-normalize-identifier2.0.1indirecta
npmmicromark-util-resolve-all2.0.1indirecta
npmmicromark-util-sanitize-uri2.0.1indirecta
npmmicromark-util-subtokenize2.1.0indirecta
npmmicromark-util-symbol2.0.1indirecta
npmmicromark-util-types2.0.2indirecta
npmmime-db1.52.0indirecta
npmmime-types2.1.35indirecta
npmmrmime2.0.1indirecta
npmms2.1.3indirecta
npmnanoid3.3.12indirecta
npmnegotiator0.6.3indirecta
npmobject-assign4.1.1indirecta
npmobug2.1.1indirecta
npmobug2.1.2indirecta
npmoniguruma-parser0.12.2indirecta
npmoniguruma-to-es4.3.6indirecta
npmorderedmap2.1.1indirecta
npmoxfmt0.52.0indirecta
npmoxlint1.67.0indirecta
npmoxlint-tsgolint0.23.0indirecta
npmparse57.3.0indirecta
npmpicocolors1.1.1indirecta
npmpicomatch4.0.4indirecta
npmpixelmatch7.2.0indirecta
npmpngjs7.0.0indirecta
npmpostcss8.5.15indirecta
npmproperty-information7.2.0indirecta
npmprosemirror-changeset2.4.1indirecta
npmprosemirror-commands1.7.1indirecta
npmprosemirror-dropcursor1.8.2indirecta
npmprosemirror-gapcursor1.4.1indirecta
npmprosemirror-highlight0.15.1indirecta
npmprosemirror-history1.5.0indirecta
npmprosemirror-inputrules1.5.1indirecta
npmprosemirror-keymap1.2.3indirecta
npmprosemirror-model1.25.7indirecta
npmprosemirror-schema-list1.5.1indirecta
npmprosemirror-state1.4.4indirecta
npmprosemirror-tables1.8.5indirecta
npmprosemirror-transform1.12.0indirecta
npmprosemirror-view1.41.8indirecta
npmreact-devtools-core7.0.1indirecta
npmreact-icons5.6.0indirecta
npmreact-number-format5.4.5indirecta
npmreact-remove-scroll2.7.2indirecta
npmreact-remove-scroll-bar2.3.8indirecta
npmreact-style-singleton2.2.3indirecta
npmreact-textarea-autosize8.5.9indirecta
npmreaddirp4.1.2indirecta
npmregex6.1.0indirecta
npmregex-recursion6.0.2indirecta
npmregex-utilities2.3.0indirecta
npmrehype-format5.0.1indirecta
npmrehype-minify-whitespace6.0.2indirecta
npmrehype-parse9.0.1indirecta
npmrehype-remark10.0.1indirecta
npmrehype-stringify10.0.1indirecta
npmremark-gfm4.0.1indirecta
npmremark-parse11.0.0indirecta
npmremark-rehype11.1.2indirecta
npmremark-stringify11.0.0indirecta
npmrolldown1.0.3indirecta
npmrope-sequence1.3.4indirecta
npmscheduler0.27.0indirecta
npmshell-quote1.8.4indirecta
npmsignal-exit3.0.7indirecta
npmsirv3.0.2indirecta
npmsocket.io-adapter2.5.7indirecta
npmsocket.io-parser4.2.6indirecta
npmsource-map-js1.2.1indirecta
npmspace-separated-tokens2.0.2indirecta
npmstd-env4.1.0indirecta
npmstringify-entities4.0.4indirecta
npmtabbable6.4.0indirecta
npmtinybench2.9.0indirecta
npmtinyexec1.2.4indirecta
npmtinyglobby0.2.17indirecta
npmtinypool2.1.0indirecta
npmtotalist3.0.1indirecta
npmtrim-lines3.0.1indirecta
npmtrim-trailing-lines2.1.0indirecta
npmtrough2.2.0indirecta
npmtslib2.8.1indirecta
npmtype-fest4.41.0indirecta
npmtypescript^6.0.2indirecta
npmundici-types7.24.6indirecta
npmunified11.0.5indirecta
npmunist-util-find-after5.0.0indirecta
npmunist-util-is6.0.1indirecta
npmunist-util-position5.0.0indirecta
npmunist-util-stringify-position4.0.0indirecta
npmunist-util-visit5.1.0indirecta
npmunist-util-visit-parents6.0.2indirecta
npmuse-callback-ref1.3.3indirecta
npmuse-composed-ref1.4.0indirecta
npmuse-isomorphic-layout-effect1.2.1indirecta
npmuse-latest1.3.0indirecta
npmuse-sidecar1.1.3indirecta
npmuse-sync-external-store1.6.0indirecta
npmvary1.1.2indirecta
npmvfile6.0.3indirecta
npmvfile-location5.0.3indirecta
npmvfile-message4.0.3indirecta
npmvite8.0.16indirecta
npmvite^8.0.0indirecta
npmvite-plus0.1.24indirecta
npmvitest^4.1.5indirecta
npmw3c-keyname2.2.8indirecta
npmweb-namespaces2.0.1indirecta
npmws7.5.11indirecta
npmws8.20.1indirecta
npmws8.21.0indirecta
npmxmlhttprequest-ssl2.1.2indirecta
npmy-prosemirror1.3.7indirecta
npmy-protocols1.0.7indirecta
npmyjs13.6.31indirecta
npmzwitch2.0.4indirecta
Avisos de dependencias 2

Este repositorio no publica ningún paquete que el índice resuelva, así que se evaluó su propio grafo de dependencias — 393 paquetes, que incluyen también fijaciones de desarrollo y prueba que nunca se distribuyen: 2 tienen avisos conocidos, de los cuales 0 son directas. 22 no pudieron evaluarse: sin versión resuelta, ecosistema no admitido, o fuera de la lista de paquetes informada.

PaqueteVersiónRelaciónGravedadAvisosCorregido en
shell-quote1.8.4indirectaalta11.9.0
ws8.20.1indirectaalta18.21.0

Un aviso significa que la versión registrada en el grafo de dependencias cae dentro del rango afectado de un aviso. No se analiza la alcanzabilidad, y el grafo incluye fijaciones de desarrollo y prueba: un hallazgo puede referirse al utillaje y no al software distribuido.

Informe JSON sin procesar legible por máquina
{
  "data": {
    "repo": {
      "topics": [
        "ai",
        "deepseek",
        "free",
        "free-ai",
        "freeai",
        "gpt",
        "gptoss",
        "kimi",
        "nim",
        "nvidia",
        "nvidia-nim",
        "nvidia-nim-api",
        "nvidia-nims",
        "openclaw",
        "opencode"
      ],
      "is_fork": false,
      "size_kb": 73201,
      "has_wiki": false,
      "homepage": "https://freecodingmodels.vercel.app",
      "languages": {
        "CSS": 214919,
        "HTML": 6300058,
        "Shell": 1920,
        "Dockerfile": 808,
        "JavaScript": 2165092,
        "TypeScript": 47528
      },
      "pushed_at": "2026-07-20T04:32:15Z",
      "created_at": "2026-02-20T23:12:50Z",
      "owner_type": "User",
      "updated_at": "2026-07-23T19:54:36Z",
      "description": "Find, benchmark and install in CLI 170+ FREE coding LLM models across 15+ providers in real time",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": null,
      "default_branch": "main",
      "license_spdx_raw": "NOASSERTION",
      "primary_language": "HTML",
      "significant_languages": [
        "HTML",
        "JavaScript"
      ]
    },
    "owner": {
      "blog": null,
      "name": "Vanessa Depraute",
      "type": "User",
      "login": "vava-nessa",
      "company": "Freelancer",
      "location": "Paris, France",
      "followers": 123,
      "avatar_url": "https://avatars.githubusercontent.com/u/5466264?v=4",
      "created_at": "2013-09-16T02:05:08Z",
      "is_verified": null,
      "public_repos": 10,
      "account_age_days": 4693
    },
    "license": {
      "state": "custom",
      "spdx_id": null,
      "raw_spdx": "NOASSERTION",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.5.50",
          "kind": "patch",
          "published_at": "2026-07-18T12:19:24Z"
        },
        {
          "tag": "v0.5.49",
          "kind": "patch",
          "published_at": "2026-07-18T08:08:12Z"
        },
        {
          "tag": "v0.5.47",
          "kind": "patch",
          "published_at": "2026-07-08T12:31:31Z"
        },
        {
          "tag": "v0.5.46",
          "kind": "patch",
          "published_at": "2026-07-08T10:17:43Z"
        },
        {
          "tag": "v0.5.45",
          "kind": "patch",
          "published_at": "2026-07-08T10:07:34Z"
        },
        {
          "tag": "v0.5.44",
          "kind": "patch",
          "published_at": "2026-07-08T09:45:31Z"
        },
        {
          "tag": "v0.5.43",
          "kind": "patch",
          "published_at": "2026-07-07T13:05:52Z"
        },
        {
          "tag": "v0.5.42",
          "kind": "patch",
          "published_at": "2026-07-07T12:56:53Z"
        },
        {
          "tag": "v0.5.41",
          "kind": "patch",
          "published_at": "2026-07-07T12:38:54Z"
        },
        {
          "tag": "v0.5.40",
          "kind": "patch",
          "published_at": "2026-07-07T12:35:17Z"
        },
        {
          "tag": "v0.5.39",
          "kind": "patch",
          "published_at": "2026-06-27T19:58:48Z"
        },
        {
          "tag": "v0.5.38",
          "kind": "patch",
          "published_at": "2026-06-27T15:44:30Z"
        },
        {
          "tag": "v0.5.37",
          "kind": "patch",
          "published_at": "2026-06-20T13:15:24Z"
        },
        {
          "tag": "v0.5.36",
          "kind": "patch",
          "published_at": "2026-06-20T11:15:01Z"
        },
        {
          "tag": "v0.5.35",
          "kind": "patch",
          "published_at": "2026-06-17T11:58:40Z"
        },
        {
          "tag": "v0.5.34",
          "kind": "patch",
          "published_at": "2026-06-17T11:54:19Z"
        },
        {
          "tag": "v0.5.32",
          "kind": "patch",
          "published_at": "2026-06-15T17:05:40Z"
        },
        {
          "tag": "v0.5.31",
          "kind": "patch",
          "published_at": "2026-06-15T16:47:54Z"
        },
        {
          "tag": "v0.5.30",
          "kind": "patch",
          "published_at": "2026-06-15T16:39:14Z"
        },
        {
          "tag": "v0.5.29",
          "kind": "patch",
          "published_at": "2026-06-15T14:31:53Z"
        },
        {
          "tag": "v0.5.28",
          "kind": "patch",
          "published_at": "2026-06-11T12:29:08Z"
        },
        {
          "tag": "v0.5.27",
          "kind": "patch",
          "published_at": "2026-06-11T11:35:02Z"
        },
        {
          "tag": "v0.5.26",
          "kind": "patch",
          "published_at": "2026-06-11T11:04:43Z"
        },
        {
          "tag": "v0.5.25",
          "kind": "patch",
          "published_at": "2026-06-10T19:39:20Z"
        },
        {
          "tag": "v0.5.24",
          "kind": "patch",
          "published_at": "2026-06-10T19:32:05Z"
        },
        {
          "tag": "v0.5.23",
          "kind": "patch",
          "published_at": "2026-06-10T17:47:49Z"
        },
        {
          "tag": "v0.5.22",
          "kind": "patch",
          "published_at": "2026-06-10T17:37:07Z"
        },
        {
          "tag": "v0.5.21",
          "kind": "patch",
          "published_at": "2026-06-10T13:16:02Z"
        },
        {
          "tag": "v0.5.20",
          "kind": "patch",
          "published_at": "2026-06-10T12:00:14Z"
        },
        {
          "tag": "v0.5.19",
          "kind": "patch",
          "published_at": "2026-06-10T10:35:18Z"
        },
        {
          "tag": "v0.5.18",
          "kind": "patch",
          "published_at": "2026-06-09T16:08:00Z"
        },
        {
          "tag": "v0.5.17",
          "kind": "patch",
          "published_at": "2026-06-08T17:46:32Z"
        },
        {
          "tag": "v0.5.16",
          "kind": "patch",
          "published_at": "2026-06-04T18:55:00Z"
        },
        {
          "tag": "v0.5.15",
          "kind": "patch",
          "published_at": "2026-06-04T16:01:33Z"
        },
        {
          "tag": "v0.5.12",
          "kind": "patch",
          "published_at": "2026-06-02T22:20:47Z"
        },
        {
          "tag": "v0.5.11",
          "kind": "patch",
          "published_at": "2026-06-02T19:19:58Z"
        },
        {
          "tag": "v0.5.10",
          "kind": "patch",
          "published_at": "2026-06-02T16:16:20Z"
        },
        {
          "tag": "v0.5.9",
          "kind": "patch",
          "published_at": "2026-06-02T15:52:15Z"
        },
        {
          "tag": "v0.5.8",
          "kind": "patch",
          "published_at": "2026-06-02T15:36:06Z"
        },
        {
          "tag": "v0.5.6",
          "kind": "patch",
          "published_at": "2026-06-01T14:55:11Z"
        },
        {
          "tag": "v0.5.5",
          "kind": "patch",
          "published_at": "2026-06-01T12:06:28Z"
        },
        {
          "tag": "v0.5.4",
          "kind": "patch",
          "published_at": "2026-06-01T11:54:34Z"
        },
        {
          "tag": "v0.5.1",
          "kind": "patch",
          "published_at": "2026-05-31T22:25:21Z"
        },
        {
          "tag": "v0.5.0",
          "kind": "minor",
          "published_at": "2026-05-31T18:42:11Z"
        },
        {
          "tag": "v0.4.3",
          "kind": "patch",
          "published_at": "2026-05-31T17:18:40Z"
        },
        {
          "tag": "v0.4.2",
          "kind": "patch",
          "published_at": "2026-05-30T13:43:57Z"
        },
        {
          "tag": "v0.4.1",
          "kind": "patch",
          "published_at": "2026-05-30T13:26:01Z"
        },
        {
          "tag": "v0.4.0",
          "kind": "minor",
          "published_at": "2026-05-30T13:20:20Z"
        },
        {
          "tag": "v0.3.80",
          "kind": "patch",
          "published_at": "2026-05-30T11:12:37Z"
        },
        {
          "tag": "v0.3.79",
          "kind": "patch",
          "published_at": "2026-05-28T22:04:21Z"
        },
        {
          "tag": "v0.3.78",
          "kind": "patch",
          "published_at": "2026-05-28T21:19:05Z"
        },
        {
          "tag": "v0.3.77",
          "kind": "patch",
          "published_at": "2026-05-28T21:00:28Z"
        },
        {
          "tag": "v0.3.76",
          "kind": "patch",
          "published_at": "2026-05-28T19:55:05Z"
        },
        {
          "tag": "v0.3.75",
          "kind": "patch",
          "published_at": "2026-05-28T19:42:21Z"
        },
        {
          "tag": "v0.3.74",
          "kind": "patch",
          "published_at": "2026-05-28T10:22:27Z"
        },
        {
          "tag": "v0.3.73",
          "kind": "patch",
          "published_at": "2026-05-28T09:38:56Z"
        },
        {
          "tag": "v0.3.71",
          "kind": "patch",
          "published_at": "2026-05-27T15:23:59Z"
        },
        {
          "tag": "v0.3.70",
          "kind": "patch",
          "published_at": "2026-05-27T15:17:38Z"
        },
        {
          "tag": "v0.3.69",
          "kind": "patch",
          "published_at": "2026-05-26T16:51:50Z"
        },
        {
          "tag": "v0.3.68",
          "kind": "patch",
          "published_at": "2026-05-26T15:11:09Z"
        },
        {
          "tag": "v0.3.67",
          "kind": "patch",
          "published_at": "2026-05-17T18:21:30Z"
        },
        {
          "tag": "v0.3.66",
          "kind": "patch",
          "published_at": "2026-05-16T13:45:44Z"
        },
        {
          "tag": "v0.3.65",
          "kind": "patch",
          "published_at": "2026-05-06T16:56:53Z"
        },
        {
          "tag": "v0.3.64",
          "kind": "patch",
          "published_at": "2026-05-06T16:45:31Z"
        },
        {
          "tag": "v0.3.63",
          "kind": "patch",
          "published_at": "2026-05-05T20:08:21Z"
        },
        {
          "tag": "v0.3.62",
          "kind": "patch",
          "published_at": "2026-05-04T21:31:39Z"
        },
        {
          "tag": "v0.3.60",
          "kind": "patch",
          "published_at": "2026-05-04T20:40:58Z"
        },
        {
          "tag": "v0.3.59",
          "kind": "patch",
          "published_at": "2026-05-04T20:38:11Z"
        },
        {
          "tag": "v0.3.58",
          "kind": "patch",
          "published_at": "2026-05-04T20:22:24Z"
        },
        {
          "tag": "v0.3.57",
          "kind": "patch",
          "published_at": "2026-05-04T17:45:24Z"
        },
        {
          "tag": "v0.3.56",
          "kind": "patch",
          "published_at": "2026-05-04T13:15:13Z"
        },
        {
          "tag": "v0.3.55",
          "kind": "patch",
          "published_at": "2026-04-18T16:30:57Z"
        },
        {
          "tag": "v0.3.54",
          "kind": "patch",
          "published_at": "2026-04-18T16:28:24Z"
        },
        {
          "tag": "v0.3.52",
          "kind": "patch",
          "published_at": "2026-04-18T16:23:41Z"
        },
        {
          "tag": "v0.3.51",
          "kind": "patch",
          "published_at": "2026-04-11T13:20:03Z"
        },
        {
          "tag": "v0.3.50",
          "kind": "patch",
          "published_at": "2026-04-11T11:06:10Z"
        },
        {
          "tag": "v0.3.49",
          "kind": "patch",
          "published_at": "2026-04-11T10:27:47Z"
        },
        {
          "tag": "v0.3.48",
          "kind": "patch",
          "published_at": "2026-04-11T10:18:27Z"
        },
        {
          "tag": "v0.3.47",
          "kind": "patch",
          "published_at": "2026-04-11T09:59:18Z"
        },
        {
          "tag": "v0.3.46",
          "kind": "patch",
          "published_at": "2026-04-11T09:50:06Z"
        },
        {
          "tag": "v0.3.45",
          "kind": "patch",
          "published_at": "2026-04-11T09:36:44Z"
        },
        {
          "tag": "v0.3.44",
          "kind": "patch",
          "published_at": "2026-04-10T12:58:38Z"
        },
        {
          "tag": "v0.3.43",
          "kind": "patch",
          "published_at": "2026-04-09T15:07:06Z"
        },
        {
          "tag": "v0.3.42",
          "kind": "patch",
          "published_at": "2026-04-09T11:14:24Z"
        },
        {
          "tag": "v0.3.41",
          "kind": "patch",
          "published_at": "2026-04-09T10:15:52Z"
        },
        {
          "tag": "v0.3.40",
          "kind": "patch",
          "published_at": "2026-04-09T09:00:14Z"
        },
        {
          "tag": "v0.3.36",
          "kind": "patch",
          "published_at": "2026-04-07T09:36:47Z"
        },
        {
          "tag": "v0.3.37",
          "kind": "patch",
          "published_at": "2026-04-07T00:12:33Z"
        },
        {
          "tag": "v0.3.35",
          "kind": "patch",
          "published_at": "2026-04-06T23:51:26Z"
        },
        {
          "tag": "v0.3.34",
          "kind": "patch",
          "published_at": "2026-04-06T00:29:50Z"
        },
        {
          "tag": "v0.3.33",
          "kind": "patch",
          "published_at": "2026-04-01T14:18:25Z"
        },
        {
          "tag": "v0.3.32",
          "kind": "patch",
          "published_at": "2026-04-01T14:15:09Z"
        },
        {
          "tag": "v0.3.31",
          "kind": "patch",
          "published_at": "2026-04-01T14:02:28Z"
        },
        {
          "tag": "v0.3.30",
          "kind": "patch",
          "published_at": "2026-03-27T20:55:13Z"
        },
        {
          "tag": "v0.3.29",
          "kind": "patch",
          "published_at": "2026-03-27T20:46:40Z"
        },
        {
          "tag": "v0.3.28",
          "kind": "patch",
          "published_at": "2026-03-27T20:41:41Z"
        },
        {
          "tag": "v0.3.26",
          "kind": "patch",
          "published_at": "2026-03-27T19:50:40Z"
        },
        {
          "tag": "v0.3.25",
          "kind": "patch",
          "published_at": "2026-03-19T19:42:25Z"
        },
        {
          "tag": "v0.3.24",
          "kind": "patch",
          "published_at": "2026-03-19T13:49:39Z"
        },
        {
          "tag": "v0.3.23",
          "kind": "patch",
          "published_at": "2026-03-18T20:22:11Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "fc83df1abee1b8e5e755f5d4b97caeea8d5ef701",
          "body": "kandown v0.20.0 stopped shipping these per-project — kandown work and\nthe TUI agent launcher now both read the rules straight from the\ninstalled CLI package, so a local copy only went stale and had nothing\nleft referencing it. Also dropped the now-false \"read\n.kandown/AGENT_KANDOWN.md if you can't run the CLI\" fallback line from\nAGENTS.md.",
          "is_bot": false,
          "headline": "chore(kandown): drop stale AGENT.md/AGENT_KANDOWN.md copies",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-07-19T18:31:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "472e6989d2b67df2a6769de18f4c6d049af45e54",
          "body": "- Backfilled .kandown/AGENT_KANDOWN.md, .kandown/README.md, and\n  .kandown/.gitignore, missing since this project's kandown install\n  predates those files. Refreshed kandown.html to the current bundled\n  version.\n- AGENTS.md kandown reference now points at `kandown work` instead of\n  a rules block f\n[…]\nplit-*), but\n  tasks/ already holds PRD-smart-model-router.md, an actively-used\n  product doc unrelated to kandown. Left both as is rather than risk\n  that doc getting picked up as a bogus board card.",
          "is_bot": false,
          "headline": "chore(kandown): repair install, update agent ref",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-07-19T15:06:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8e0a0fe497ca9026de7f76d7787df95f4332f51e",
          "body": null,
          "is_bot": false,
          "headline": "0.5.50 - 🔍 full model audit (20 providers, auto-deprecation support)",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-07-18T12:18:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "be3a9deb08544c21d3f6d5e359a5635aa0a90ce6",
          "body": null,
          "is_bot": false,
          "headline": "0.5.49",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-07-18T08:02:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "feae2abf813d4607e54f71767047005cba4a20bd",
          "body": null,
          "is_bot": false,
          "headline": "audit: groq – remove deprecated models",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-07-18T07:51:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1510df65a8ed58336a263cf5bc61d807b5a52600",
          "body": null,
          "is_bot": false,
          "headline": "0.5.47 - 🔌 fcm-opencode plugin (BETA) + silent-by-default FCM-Pi",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-07-08T12:30:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d8a616cd62c2aaa7b50419d2c4312bf021d0358",
          "body": "… models\n\n- live /v1/models confirms claude-*/gpt-5.* / glm-5.2 / kimi-k2.6 / deepseek-v4-flash / minimax-m2.7 are pro (paid)\n- keep only free turbo: devstral-small-2:24b, codestral-latest (257 -> 247 models)\n- removed 1.05M ctx entries",
          "is_bot": false,
          "headline": "0.5.46 - fix: drop non-free (pro) LLM7 models, keep only 2 free turbo…",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-07-08T10:16:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fe402927f05738b5e0f2c9c86f6f737588fca059",
          "body": "…odels\n\n- 68 models scored from '-' to real SWE-bench Verified %\n- tiers recomputed from verified scores across all 20 providers\n- 55 models retain manual tier estimates (no public SWE score: embeddings, vision, edge, routers)",
          "is_bot": false,
          "headline": "0.5.45 - swe: refresh SWE-bench Verified scores + tiers for all 257 m…",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-07-08T10:06:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bac16173f6d1d81f281e14fd877f3cd4921fec28",
          "body": "- nvidia(+7), github-models(+20), openrouter(+10), qwen(+10), ollama-cloud(+10), llm7(+6), scaleway(+4), mistral(+2), cloudflare(+1), cerebras(+1), codestral(+1), zai(+1)\n- removed deprecated: step-3.5-flash, kimi-k2.5, mistral-7b-v0.2, owl-alpha, magistral-1.2, routeway minimax-m2/mistral-nemo, oll\n[…]\nD fixes across cerebras, nvidia, github-models, qwen, novita, zai\n- audit_state.json fingerprints refreshed for all 20 providers\n- test/test.js: updated stale hard-coded model IDs (glm-5.1 -> glm-5.2)",
          "is_bot": false,
          "headline": "0.5.44 - audit: refresh all 20 providers (257 models)",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-07-08T09:44:32Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "52d7c1a0057bc546d1ca7da1243bbd4ac2d0fff6",
          "body": null,
          "is_bot": false,
          "headline": "docs: clarify FCM-Pi extension is BETA, install via local path only",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-07-07T13:06:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "01c956754ddd7c9a23319baa91fcbe57df942b73",
          "body": null,
          "is_bot": false,
          "headline": "0.5.43 - 📖 Pi extension documentation",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-07-07T13:05:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "674ada5618a39bdf0029f2db06d13868a652c5ff",
          "body": null,
          "is_bot": false,
          "headline": "0.5.42",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-07-07T12:56:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "735da7dec417d1af0df60ea531d79555771e5d18",
          "body": null,
          "is_bot": false,
          "headline": "0.5.41",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-07-07T12:37:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eeecb6cec0c30c59d87e839c20c61409d67eb528",
          "body": null,
          "is_bot": false,
          "headline": "0.5.40",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-07-07T12:34:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "874842d49010591cd28200af9e68c8b365843c67",
          "body": null,
          "is_bot": false,
          "headline": "0.5.39",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-27T19:57:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "04b0f130473366020d0ebe360bcce276cbe12de2",
          "body": "- groq: +qwen/qwen3.6-27b (preview, 131k)\n- cloudflare: +glm-5.2 (S+, 262k), +kimi-k2.5 (S+, 256k), fix nemotron-3-120b ctx 32k→128k\n- ovhcloud: +Qwen3-Embedding-8B, +bge-m3, +bge-multilingual-gemma2\n\nCloses #audit-2026-06-27",
          "is_bot": false,
          "headline": "feat: add missing models across 4 providers",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-27T18:49:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "43af51897e09382fc1cb968ffa23f50d1596df6e",
          "body": null,
          "is_bot": false,
          "headline": "0.5.38",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-27T15:43:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bc9c6cb07ce60347c8b98ede4cc23dafebe503f9",
          "body": "The @tanstack/react-virtual@^3.14.2 dependency was added to package.json in\ncommit 694a258 but pnpm install was never run, so pnpm-lock.yaml was never\nupdated. This caused the Docker CI workflow to fail on every run since\nv0.5.32 — the 'Verify pnpm lockfile sync' step in docker.yml catches this\nand exits with an error.\n\nFixes GHCR Docker image being stuck at v0.5.32 while npm has v0.5.37.\nCloses #122.\n\nCo-authored-by: contributor <contributor@example.com>",
          "is_bot": false,
          "headline": "fix: regenerate pnpm-lock.yaml to include @tanstack/react-virtual (#123)",
          "author_name": "stgreenb",
          "author_login": "stgreenb",
          "committed_at": "2026-06-27T15:34:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f43e166f1dc72a73cd1ce0799dc4f0ebe04516ce",
          "body": "…s (#128)",
          "is_bot": false,
          "headline": "feat(zcode): add full ZCode install-target support across all surface…",
          "author_name": "MoriDan",
          "author_login": "MoriDanWork",
          "committed_at": "2026-06-27T15:17:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4bb8556156c23c2661e1cd9ac7a404a2e16dbc88",
          "body": "Bundle the v0.5.36 router priority fix with two regression tests and a\nscoreCandidates refactor that prevents #120 from silently regressing and\nremoves the priority-mixed-into-score footgun for future code.\n\n- scoreCandidates: score is now pure latency+uptime (0.5/0.5 weights,\n  normalized [0,1]); p\n[…]\nut ignored at runtime; will be removed in a future major.\n- Tests: +2 regression tests for issue #120 (HALF_OPEN scenario from the\n  user screenshot + score tiebreaker determinism). 540 → 542 passing.",
          "is_bot": false,
          "headline": "0.5.37 - 🧪 Lock in #120 fix (HALF_OPEN regression) + score split",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-20T13:14:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f0dd3d8d8ab183863ded760bfc95c9e73acb255d",
          "body": "Bundles router priority fix + probe-loop hardening, provider-key-test\nre-exports completing #121, and @MoriDanWork contributor credit.\n\n- Router: sort by explicit priority BEFORE circuit state so a high-priority\n  HALF_OPEN model is no longer skipped for a lower-priority CLOSED one.\n- Probe loop: watchdog cleanup, lastProbeAt tracking, try/catch around cycles.\n- key-handler: re-export shared provider-key-test helpers (finishes #121).\n- Docs: credit @MoriDanWork in README + AGENTS.md.",
          "is_bot": false,
          "headline": "0.5.36 - 🐛 Fix router priority ordering (HALF_OPEN skip)",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-20T11:13:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "488bf1605c7318cbad41a445e5f7ee26280d4e9e",
          "body": null,
          "is_bot": false,
          "headline": "fix: ensure pnpm-lock.yaml stays in sync, add CI lockfile verification",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-19T12:10:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fbb3c30dd26c747e2b07fe997aab6653ea1ecc60",
          "body": "…(#121)",
          "is_bot": false,
          "headline": "refactor(tui) + fix(web): move provider key testing to shared module …",
          "author_name": "MoriDan",
          "author_login": "MoriDanWork",
          "committed_at": "2026-06-18T13:35:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6a0e3f2145e75a0079e62e781dd2520390b615e1",
          "body": "Same code as 0.5.34. Published to close the version gap on npm\n(0.5.32 → 0.5.34, 0.5.33 missing). The 0.5.33 commit (ecf740c)\nand its changelog file remain in git history for reference.\n\nchangelog/v0.5.35.md explains the situation in full.",
          "is_bot": false,
          "headline": "0.5.35 - 📝 Registry note: 0.5.33 was skipped in auto-publish",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-17T11:57:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9edb2ecf09f2fe670ffa8551b56e80d7f7c0cae1",
          "body": "New module src/core/schema-normalizer.js fixes the 400/422 errors\nGLM and Mistral/Codestral throw when ZCode, Claude Code, or Cline\nsend their tool-call flow upstream:\n\n  - strip parallel_tool_calls, n, top_k, logprobs, echo, user,\n    metadata, store (unsupported by these providers, cause 422)\n  - \n[…]\nnow point the\ndesktop IDE at http://localhost:19280/v1 (model: 'fcm', key:\n'fcm-local') without hitting the schema-mismatch wall.\n\ndocs/README_ROUTER.md updated to document the per-provider transform.",
          "is_bot": false,
          "headline": "0.5.34 - 🛠 Per-provider schema normalizer (GLM, Mistral, Codestral)",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-17T11:44:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ecf740c6f65410fb3bdc7868d8b9ef2355c7a867",
          "body": "Add ZCode as a first-class supported tool:\n- 🧊 ZCode flag (--zcode) in the TUI Z-hotkey cycle and CLI --help\n- 🧊 Compatible-with column entry\n- Launch on macOS via 'open -a ZCode' (no-op on other platforms)\n- Setup instructions point users at the local FCM Router\n  (http://localhost:19280/v1 / fcm-l\n[…]\n\n- changelog/v0.5.33.md\n\nWhy: requested on Discord by a user hitting GLM/Codestral 422s\nwhen routing through fcm_router into ZCode. Native tool mode makes\nthe router + ZCode combo a one-flag workflow.",
          "is_bot": false,
          "headline": "0.5.33 - 🧊 Add ZCode (z.ai desktop IDE) tool mode",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-17T11:18:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d1a8663370ac4b0bcc4157c397589630bd20e247",
          "body": "Replace 7 boolean modal state vars (helpOpen, changelogOpen,\nrecommendOpen, routerOpen, playgroundOpen, installedModelsOpen,\ninstallEndpointsOpen) with one currentView string state.\n\nWhy: simpler navigation, single source of truth, makes PostHog\nview-tracking and active-header highlighting trivial.\n\n[…]\negistered in urlState.constants: playground,\n  install-endpoints, installed-models\n- PostHog 'app_router_start' now fires on view change, not\n  button click\n- All M3/M4 unit tests still pass (524/524)",
          "is_bot": false,
          "headline": "refactor(web): unify M3 modals into single currentView state",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-17T11:07:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5f5eba3aeb96030b8bc897105b01373faf614f7f",
          "body": null,
          "is_bot": false,
          "headline": "Update LICENSE",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-16T09:08:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eb19f2f96adcec30bbd8df2672dfbfc3d35fc5c6",
          "body": "- added deepseek-v4-flash + kimi-k2.6 (both S+, free + keyless on llm7 -> valuable no-key fallback)\n4 -> 6 models. live /v1/models verified (9 models total on llm7).",
          "is_bot": false,
          "headline": "audit: llm7 first audit (4/4 confirmed live)",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-16T00:46:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9ff37f40984f99435eece6500eb77223557c9544",
          "body": "Zen free models are ephemeral (rotates often). Current free list (per Zen pricing):\n- replaced nemotron-3-super-free -> nemotron-3-ultra-free (Ultra is now the free Nemotron)\n- removed minimax-m3-free (rotated out of free tier)\n- added north-mini-code-free (new Cohere North Mini Code free model)\n5 -> 5 models",
          "is_bot": false,
          "headline": "audit: opencode-zen free-tier rotation",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-16T00:44:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "366e47339d5fc0e82a4f6a1c7c8ea8f223c4045b",
          "body": "- added qwen3.6-35b-a3b (A+/-/256k, new Apr 2026 agentic MoE, Serverless/free-tier)\n10 -> 11 models",
          "is_bot": false,
          "headline": "audit: scaleway verified (10/10 confirmed)",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-16T00:42:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "632904cc3625e95f4cc11fdff4429b7ae5449253",
          "body": "- added Qwen3.6-27B (A/-/262k, new reasoning model, top of OVH catalog)\n10 -> 11 models",
          "is_bot": false,
          "headline": "audit: ovhcloud verified against live API (10/10 confirmed)",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-16T00:39:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "694a258e1fea4f5640e2da79ad000f22b369f765",
          "body": "- removed Llama-4-Maverick (not in live /v1/models)\n- removed gemma-3-12b-it (not in live, replaced by gemma-4-31B-it)\n- added gemma-4-31B-it (A/45%/128k, live)\n7 -> 6 models",
          "is_bot": false,
          "headline": "audit: sambanova verified against live API",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-16T00:37:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b149d739436696d923ca4aef7ee42b8437d03562",
          "body": "removed 45 dead note lines (// Removed ... / ⚠️ DEPRECATED ...) across all\nproviders. catalog content unchanged (189 models). git history is the archive.",
          "is_bot": false,
          "headline": "chore: strip discontinued-model comments from sources.js",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-16T00:35:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a3898e57f7d40ce38a50b3d0748231d3bd8f971e",
          "body": "- nvidia: removed qwen3-coder-480b (absent from live NIM /v1/models, dead endpoint), added minimax-m3 (live, free endpoint, S/59%/1M)\n- mistral: annotated devstral-2512 + magistral-medium-2509 deprecations (retire Jul 31 2026, replacements already cataloged)\n- cloudflare: removed 4 phantom models (c\n[…]\nocs, never real models); added kimi-k2.7-code (new flagship) + gpt-oss-120b; annotated deprecated mistral-7b-v0.2\n\nnet: 191 -> 189 models. live API + official docs verified, search backends were down.",
          "is_bot": false,
          "headline": "audit: nvidia/mistral/cloudflare verified",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-16T00:31:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "850bc2c1217dbb9f880a7ded62dcee79762dae4e",
          "body": "Rebrand the dashboard to the lime-green (#c0f20c) identity: refreshed\ncolor tokens, larger base font (14->16px), app-shell grid + glow\nbackground, and a search bar wired into the FilterBar.\n\nAdd a cult-ui-inspired Grid Beam canvas overlay that travels along the\nmodel table's REAL borders (ported to \n[…]\non:sticky (the bar\nsits outside the internal scroller, so it is naturally always visible).\n\nCatalog: drop dead qwen3-coder-480b (NVIDIA NIM returns 410), add\nminimax-m3.\n\nbuild OK, 524/524 tests pass.",
          "is_bot": false,
          "headline": "feat(web): green rebrand, grid-beam table overlay, sticky header",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-16T00:15:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8dc36c77e140899e0e3eb358e23bbbf7b2e7800c",
          "body": null,
          "is_bot": false,
          "headline": "0.5.32 - 🔄 Restart outdated daemon automatically on version mismatch",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-15T17:04:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "de613313cf70833153dc6cbaa40f672482b2c098",
          "body": null,
          "is_bot": false,
          "headline": "0.5.31 - ✨ Add 'Use favorites' button in Router view",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-15T16:47:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b9605e17450067561c070c30f62052e950d7492",
          "body": null,
          "is_bot": false,
          "headline": "0.5.30 - 🎮 Harmonize playgrounds & add router benchmark",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-15T16:38:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "61f675bed889ea3a5018eeac49828dfb9f7e876b",
          "body": "Router now serves the highest-priority healthy model first instead of\nblending priority into a health score (issue #120). Added routingOrder to\n/stats and Priority/Fallback/Next-up indicators across Web + TUI. Also\nincludes dev-mode port isolation and daemon error surfacing from the\nworking tree.",
          "is_bot": false,
          "headline": "0.5.29 - 🐛 Fix router priority routing (#120) + clearer router UI",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-15T14:30:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c3161f472e3c7e9f5b79eda963c9fbb39163d329",
          "body": "Introduce shared-helpers.js with common FS/JSON/sleep/masking utilities and isRouteableProvider to deduplicate logic across modules. Update sources.js to propagate an optional addedDate in model tuples and include that field in MODELS. Wire consumers (tui, router-daemon, endpoint-installer, sync-set\n[…]\nns. Remove unused product-flags.js and add kandown task docs for planned refactors (key-handler, router-daemon, getVerdict). Update tests and TUI to handle optional addedDate and new isNewModel logic.",
          "is_bot": false,
          "headline": "Add shared helpers; support model addedDate",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-12T13:37:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2c079256bfa968853357b219a1bd867bbd622320",
          "body": null,
          "is_bot": false,
          "headline": "0.5.28 - 🐛 Fix Docker 404s + pending confusion",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-11T12:28:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6920c03134c2a327e82049bcca0872295970109f",
          "body": null,
          "is_bot": false,
          "headline": "0.5.27 - 🆕 Add pi-free providers",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-11T11:34:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4fd4af82b70a10cc386e4517bbc21b7fadc66015",
          "body": null,
          "is_bot": false,
          "headline": "0.5.26 - 🪓 Wipeout Gemini CLI & Rovo Dev (tool integrations)",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-11T11:03:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2e3a3942927db14d2ada6502a355240145f99688",
          "body": null,
          "is_bot": false,
          "headline": "0.5.25 - 🆕 Move NEW badge left of model name (same slot as ⭐)",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-10T19:38:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "54205e1b7d1f8ea6e28d92572f22884b81d9cc37",
          "body": null,
          "is_bot": false,
          "headline": "0.5.24 - ✨ Remove erroneous sparkles from verdict icons",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-10T19:31:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eca950f4c390b3d467e3f7d68c59c4aebebcbd32",
          "body": "…W_MODELS import",
          "is_bot": false,
          "headline": "0.5.23 - 🩹 Fix SyntaxError: duplicate speedCell/moodCell + missing NE…",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-10T17:46:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e4757ff1020a43b400cfa34f1f1748b5b891753b",
          "body": null,
          "is_bot": false,
          "headline": "0.5.22",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-10T17:35:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f9ef5dd7d58b8924a1d1e28d1ba672b95cbd5eb2",
          "body": "…emini(deprecate:3)",
          "is_bot": false,
          "headline": "0.5.21 - audit: cloudflare(-2+5,fix:3), openrouter(fix:2), googleai+g…",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-10T13:15:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7d8bf4dfe15497c56f3e300a1a335a3350f1c274",
          "body": null,
          "is_bot": false,
          "headline": "0.5.20",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-10T11:59:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "082c719fcef069a4e41a17a85fc37ef010ef4cbc",
          "body": null,
          "is_bot": false,
          "headline": "0.5.19",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-10T10:34:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5395f7d62ca1c1825a3d1d01d47ec19e64b301a0",
          "body": null,
          "is_bot": false,
          "headline": "Update SKILL.md",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-10T10:04:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9d4fef4f87b23ee9cebb3991d487183f2e02b659",
          "body": null,
          "is_bot": false,
          "headline": "0.5.18 - 🩹 Fix prefix-aware updater loop",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-09T16:06:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d0793ef11064a9cca87e1b940d839f23ed7e4ece",
          "body": null,
          "is_bot": false,
          "headline": "0.5.17 - 🔧 Docker key mapping + deps bumps + test coverage",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-08T17:45:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5cb3ce5596d1dc667797c062eef4ff9d81795ce3",
          "body": null,
          "is_bot": false,
          "headline": "fix(deps): update vite-plus to 0.1.24",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-08T17:07:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "da2f37fca53e8c0f22a20df30ecfcea06c79f145",
          "body": "Bumps [kandown](https://github.com/vava-nessa/kandown) from 0.4.0 to 0.8.0.\n- [Release notes](https://github.com/vava-nessa/kandown/releases)\n- [Changelog](https://github.com/vava-nessa/kandown/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/vava-nessa/kandown/compare/v0.4.0...v0.8.0)\n\n---\nup\n[…]\nirect:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "deps(deps): bump kandown from 0.4.0 to 0.8.0 (#111)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-08T15:48:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0e818f80a85158df44f69db8c1212a2c5f5e91a6",
          "body": "Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3 to 4.\n- [Release notes](https://github.com/docker/setup-qemu-action/releases)\n- [Commits](https://github.com/docker/setup-qemu-action/compare/v3...v4)\n\n---\nupdated-dependencies:\n- dependency-name: docker/setup-qemu-\n[…]\nirect:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "ci(deps): bump docker/setup-qemu-action from 3 to 4 (#110)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-08T15:47:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7c1d08c5b668b5eb265eb0e4c9a77c36b296db7d",
          "body": "…n sed logic (#115)\n\n- scripts/docker-init.mjs imports ENV_VARS from config.js (single source of truth)\n- docker-entrypoint.sh simplified to 1-line node call\n- docker-compose.yml cleaned of 9 stale providers, added GEMINI_API_KEY, OPENCODE_ZEN_API_KEY\n- Dockerfile: added COPY scripts/ for init scrip\n[…]\napi/favorites, /api/version (dashboard deps)\n- Fixed key test probe: uses first valid model from provider instead of empty string\n\nCo-authored-by: stgreenb <18483964+stgreenb@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix: Docker provider key mapping — Node.js init script replaces broke…",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-08T15:46:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a517df3b9c38ee93826864ab6a072784dd0a503b",
          "body": null,
          "is_bot": false,
          "headline": "0.5.16 - 🌐 expandable detail rows + mini playground + AI latency bench",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-04T18:53:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b39e470bf531124dfa622a166690c091016f00d9",
          "body": null,
          "is_bot": false,
          "headline": "0.5.15 - 🔒 restore lockfile (take 3)",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-04T16:00:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b919c2200e6341589dfb0ec6c62c3b0939939c79",
          "body": null,
          "is_bot": false,
          "headline": "0.5.15 - 🔧 --no-frozen-lockfile in CI for release",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-04T16:00:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e9ef5991949d50fccd19d80f55ab6b97372f0d03",
          "body": null,
          "is_bot": false,
          "headline": "0.5.15 - 🔒 restore lockfile + pnpm@10 for CI compat",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-04T15:55:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aafaa4c8fcf028bebf3eb61aca441d19ef35fbd2",
          "body": null,
          "is_bot": false,
          "headline": "0.5.15 - 🔒 sync lockfile with pnpm@11.5.1",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-04T15:53:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "70cdaff6ad6f47ee236b6079201937ef8bbd11da",
          "body": null,
          "is_bot": false,
          "headline": "0.5.15 - 🔒 restore lockfile",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-04T15:53:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "34d402f8c9b4234d41cb6846841b87786f0d1705",
          "body": null,
          "is_bot": false,
          "headline": "0.5.15 - 🔒 update lockfile",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-04T15:52:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5d26e65e9de9bd4f1ae8f5b31700d3b82d0c8d6",
          "body": "…hboard",
          "is_bot": false,
          "headline": "0.5.15 - 🐛 Shift+R no longer launches OpenCode, only opens router das…",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-04T15:40:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "69d90a27f5cb185231dd2b238dce2741a0c33a96",
          "body": "…o white in light mode",
          "is_bot": false,
          "headline": "0.5.15 - 🩹 patchThemeBg at app level covers ALL overlays + header log…",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-04T15:33:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7ae28cc942f9e4b461fce8a709686b899fe0e72a",
          "body": "…x1b[49m",
          "is_bot": false,
          "headline": "0.5.15 - 🩹 Patch all chalk bg resets: re-apply theme bg after every \\…",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-04T15:14:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5ad985f1dc111e1bc34c3b4ce33f0ddf9f777c8f",
          "body": "…o bg reset",
          "is_bot": false,
          "headline": "0.5.15 - 🩹 BG_SET before content + headerLogo white in light mode + n…",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-04T15:05:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8637f73f3dbb558d06f16569b38736b745483be6",
          "body": "…olour",
          "is_bot": false,
          "headline": "0.5.15 - 🩹 Remove per-line bg reset so full screen fills with theme c…",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-04T14:59:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bd4988636be6217134c05164e639f4a91cb128d4",
          "body": "…footer",
          "is_bot": false,
          "headline": "0.5.15 - 🎨 Full dual-theme palette: zero hardcoded colours + G Theme …",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-04T14:52:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0051c33121cd10347953504136ffc6c61229122e",
          "body": null,
          "is_bot": false,
          "headline": "0.5.14 - 🎨 G Theme footer hotkey + forced light/dark background colours",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-04T14:27:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a0012333f0508ad1d7fc72decc0ab4b0a2df96bf",
          "body": null,
          "is_bot": false,
          "headline": "0.5.13 - 🎨 Provider SVG dropdown + health dots + playground direct route",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-04T14:07:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dab5669be7a968c07b7e8d7205835c5ca84dcdcd",
          "body": "Consolidate the three features that landed in commit 41f02a6 (M4 Web set\nmanager, M6 auto-heal, and the unusable row fade) into a single v0.5.12\nrelease to keep the version stream sequential and never skip a number.\n\nChanges in this commit:\n- package.json: bump from 0.5.14 to 0.5.12 (next sequential\n[…]\nribing a release that never actually published.\n- Consolidating everything into v0.5.12 keeps the changelog and the\n  shipped version aligned, and matches what a fresh npm install will\n  actually see.",
          "is_bot": false,
          "headline": "0.5.12 - 🩹 Auto-heal + M4 Set Manager + Unusable Row Fade",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-02T22:19:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "41f02a6cce806a1ff16468002b6138e3d13d6d70",
          "body": "Introduce automatic healing of broken router sets and a full Web set manager. Key changes:\n\n- Add router.autoHeal and router.userCustomized config flags and expose them (plus brokenModelCount) in /api/router/status. Auto-heal runs after the initial probe burst and replaces AUTH_ERROR/STALE models wi\n[…]\nv0.5.12/v0.5.13), README updates, and package version bump to 0.5.13.\n\nThese changes are focused on improving first-run reliability and giving users an interactive UI to manage and repair router sets.",
          "is_bot": false,
          "headline": "Add router auto-heal and web set manager",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-02T22:10:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "459ddadb410c4897937ae1e67a5b20e480be5294",
          "body": "Introduce a multi-surface Playground and a configurable router pre-prompt. Adds server-side pre-prompt normalization/injection (DEFAULT_ROUTER_SETTINGS.prePrompt, normalizeRouterPrePrompt, injectPrePrompt, applyPrePromptToBody) and GET/PUT /api/router/preprompt endpoints so settings persist to ~/.fr\n[…]\ne pre-prompt for streaming and non-streaming chat completions, adds web Playground component stubs, bumps version to 0.5.11, updates README and changelog, and ignores a local scratchpad in .gitignore.",
          "is_bot": false,
          "headline": "Add Playground UI and router pre-prompt support",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-02T19:18:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1c568cdbb27217f5d6f7112213b21dffb9522b42",
          "body": "…rror recovery",
          "is_bot": false,
          "headline": "0.5.10 - ✨ Install Endpoints wizard: animated step 4 confirmation + e…",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-02T16:15:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a143c3d3c7d3126ba8da746fd1e8a6b1b6309e36",
          "body": null,
          "is_bot": false,
          "headline": "0.5.9",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-02T15:51:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "870bb2af824c236607adbe917fed0f16e28c561f",
          "body": null,
          "is_bot": false,
          "headline": "0.5.8",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-02T15:35:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "46734cf6fcb4bb7132a9eea37eb56014f4f0b42e",
          "body": "…EADME update",
          "is_bot": false,
          "headline": "0.5.8 - ♿ M5: a11y 96 Lighthouse, mobile hamburger, :focus-visible, R…",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-02T15:29:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "50a6035cb6e1f447eb0a73c0eeef266aca8a16a2",
          "body": "…tall Endpoints wizard",
          "is_bot": false,
          "headline": "0.5.7 - 🚀 M4: Router Dashboard + Token Usage + Installed Models + Ins…",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-02T15:07:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c788ce174639c6beed108ea048cc61e759fcd270",
          "body": "Adds QEMU setup for cross-compilation and changes the Docker build\nplatforms from linux/amd64 only to linux/amd64,linux/arm64.\n\nThis enables users on Apple Silicon (M1/M2/M3/M4), AWS Graviton,\nRaspberry Pi 4+, and other ARM64 hosts to pull and run the image\nnatively without emulation overhead.\n\nIn test_mode (load=true), we keep linux/amd64 only because the\nDocker load option does not support multi-platform manifests.\n\nCloses #95",
          "is_bot": false,
          "headline": "fix(docker): add multi-platform builds for amd64 + arm64",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-01T21:13:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a9528bd0a64ab27bbdb57bc87cb033a9dd076344",
          "body": "…ker, per-row launch buttons, and compatibility fallback modals",
          "is_bot": false,
          "headline": "feat: implement M3 web-based endpoint installation flow with tool pic…",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-01T19:33:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5fe0585ed43d20b455fdbce2c3ca7ae72f8b7e0",
          "body": "- M1 + M2 marked DONE in the progress table (shipped as 0.5.5 + 0.5.6)\n- M3 marked as NEXT with detailed progress checklist\n- New handoff section for the next session: what's in place, what NOT\n  to do, hot spots in order, file references, acceptance criteria\n- Post-M2 entry documenting the issue #95 fix (Docker workflow_run\n  trigger + package.json version + latest tag always-on)\n- Fixed typo: findSimiLar (correct case per source)",
          "is_bot": false,
          "headline": "docs(plan): handoff to M3 with full implementation spec",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-01T15:40:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9f12fcf980d9c90b7ee17b09647c7cadb19ae35c",
          "body": "The previous metadata step relied on type=ref,event=tag and\ntype=semver,pattern=... — both of which only work on tag-push\nevents. On workflow_run (our new primary trigger) the semver\ntag was empty, so the build was only tagged with its SHA.\n\nFix: read the version from package.json (new Extract versi\n[…]\nlt-branch builds so\nthe 'latest' tag always tracks the most recent release.\n\nThe next workflow_dispatch or workflow_run will produce an image\ntagged '0.5.6' + 'latest' + SHA, matching the npm release.",
          "is_bot": false,
          "headline": "ci(cd): always tag Docker as 'latest' and with the package version",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-01T15:20:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a00993fb0754e1046caf6dc1ccfb5b85f8a392e3",
          "body": "The previous condition\nexcluded both manual dispatches AND workflow_run triggers. The new\ncondition builds when (workflow_run succeeded) OR (manual dispatch\nwithout test_mode), so both paths work.",
          "is_bot": false,
          "headline": "ci(cd): fix workflow_dispatch condition to allow manual builds",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-01T15:06:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f80376c2c2a5c7ee340da2a4c1e475efecbd1d78",
          "body": "The legacy 'push: tags: v*.*.*' trigger stopped firing after v0.3.72,\nleaving the Docker image on the registry at 0.3.72 while the npm\npackage has been climbing to 0.5.6. Issue #95.\n\nReplace the broken tag-push trigger with a workflow_run trigger on\nthe Release workflow, so every successful npm publ\n[…]\n.*.* (unreliable)\n- Add on.workflow_run: workflows: [Release], types: [completed]\n- Conditional skip when the upstream Release failed\n- Update build-push and Trivy conditions to recognize workflow_run",
          "is_bot": false,
          "headline": "ci(cd): trigger Docker on every successful Release (workflow_run)",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-01T15:05:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d0e5458071b848a76001433896a6f28044b1f0b4",
          "body": null,
          "is_bot": false,
          "headline": "0.5.6",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-01T14:54:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0b606efd804bc21b93e93a017e302f02e090f1de",
          "body": null,
          "is_bot": false,
          "headline": "update",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-01T12:22:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3428a22e790f806d2e5662074c268f7775c9e5b2",
          "body": "Add a mandatory startup self-update policy that auto-installs new releases before any user-facing surface starts. Introduce isPackageDevMode and enforceMandatoryStartupUpdate which persist install/check failure counters in config, allow two consecutive install failures before letting the UI start wi\n[…]\nate into the TUI and web server (render red warning banner in TUI and web UI), update socket hook and UI to surface the status, and add tests/CSS. Also bump package version to 0.5.5 and add changelog.",
          "is_bot": false,
          "headline": "Mandatory startup self-update with fallback",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-01T12:05:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7f35d0cd2afba832ff0b1bce413d2a92797d2da6",
          "body": "Bumps [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) from 6.0.1 to 6.0.2.\n- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)\n- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.m\n[…]\nrect:development\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "deps(deps-dev): bump @vitejs/plugin-react from 6.0.1 to 6.0.2 (#107)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-01T11:59:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c557750a2a6a30bb7d566d4877b6df82340b134d",
          "body": "Bumps [vite-plus](https://github.com/voidzero-dev/vite-plus/tree/HEAD/packages/cli) from 0.1.20 to 0.1.23.\n- [Release notes](https://github.com/voidzero-dev/vite-plus/releases)\n- [Commits](https://github.com/voidzero-dev/vite-plus/commits/v0.1.23/packages/cli)\n\n---\nupdated-dependencies:\n- dependency\n[…]\nrect:development\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "deps(deps-dev): bump vite-plus from 0.1.20 to 0.1.23 (#106)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-01T11:58:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5db1fbfcf817d8c43dc42746d3e9a25f184c42d5",
          "body": "Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 8.0.14 to 8.0.16.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v8.0.16/package\n[…]\nrect:development\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "deps(deps-dev): bump vite from 8.0.14 to 8.0.16 (#105)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-01T11:56:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6fcb6db41d49e57c1a41b9d212d7bda4d9db1fea",
          "body": "Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3 to 4.\n- [Release notes](https://github.com/docker/setup-buildx-action/releases)\n- [Commits](https://github.com/docker/setup-buildx-action/compare/v3...v4)\n\n---\nupdated-dependencies:\n- dependency-name: docker/set\n[…]\nirect:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "ci(deps): bump docker/setup-buildx-action from 3 to 4 (#104)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-01T11:56:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2b1a0e8f23e49ef4b23c1483e15067eeffb217fd",
          "body": "Bumps [docker/login-action](https://github.com/docker/login-action) from 3 to 4.\n- [Release notes](https://github.com/docker/login-action/releases)\n- [Commits](https://github.com/docker/login-action/compare/v3...v4)\n\n---\nupdated-dependencies:\n- dependency-name: docker/login-action\n  dependency-versi\n[…]\nirect:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "ci(deps): bump docker/login-action from 3 to 4 (#103)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-01T11:55:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b3bf1d12cba76fc757c6bfa444a97e757f0ffc62",
          "body": "Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 4 to 6.\n- [Release notes](https://github.com/pnpm/action-setup/releases)\n- [Commits](https://github.com/pnpm/action-setup/compare/v4...v6)\n\n---\nupdated-dependencies:\n- dependency-name: pnpm/action-setup\n  dependency-version: '6'\n  \n[…]\nirect:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "ci(deps): bump pnpm/action-setup from 4 to 6 (#102)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-01T11:55:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "af8668643f80bc95ba60e5327e773dd41548c491",
          "body": null,
          "is_bot": false,
          "headline": "0.5.4 - 🚀 Consolidate failed releases and CI fixes",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-01T11:53:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "222b7f96b99a481dd084b76cdb33b8a7f4839e08",
          "body": "The favicon generation script (scripts/build-favicons.mjs) requires the\n`magick` binary to rasterize the source icon, but the ubuntu-latest\nrunner doesn't ship with ImageMagick pre-installed. Add an apt-get install\nstep right after pnpm install so the build:favicons step in build:web\ncan run successfully.",
          "is_bot": false,
          "headline": "fix(ci): install ImageMagick in release workflow for 0.5.3",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-01T11:42:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "443a8380b44c81e51c26c4a998f7a42637224e67",
          "body": "The release workflow failed at the 'Publish to npm' step because:\n- package.json references 'node scripts/build-favicons.mjs' via build:favicons\n- but scripts/build-favicons.mjs was untracked in the working tree\n- and icon.png (the source the script rasterizes) was also untracked\n\nThis commit adds both files. The 0.5.3 release will re-run on this push\nbecause v0.5.3 was never tagged (the previous run failed before the tag step).",
          "is_bot": false,
          "headline": "fix(ci): add missing favicon build script + icon for 0.5.3 release",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-01T11:38:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b3fd70d6c73c851bc32a025ab84cbb5ef7a678f5",
          "body": null,
          "is_bot": false,
          "headline": "0.5.3",
          "author_name": "Vanessa Depraute",
          "author_login": "vava-nessa",
          "committed_at": "2026-06-01T11:27:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 100,
      "commits_last_year": 599,
      "latest_release_at": "2026-07-18T12:19:24Z",
      "latest_release_tag": "v0.5.50",
      "releases_from_tags": false,
      "days_since_last_push": 3,
      "active_weeks_last_year": 21,
      "days_since_latest_release": 5,
      "mean_days_between_releases": 1.2
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 57,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "free-coding-models",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "nvidia",
            "nim",
            "llm",
            "cli",
            "ai",
            "models",
            "benchmark",
            "latency",
            "availability",
            "deepseek",
            "qwen",
            "llama",
            "mistral",
            "glm",
            "kimi",
            "gpt",
            "chatgpt",
            "openai",
            "api"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/free-coding-models",
          "is_deprecated": false,
          "latest_version": "0.5.50",
          "repository_url": "https://github.com/vava-nessa/free-coding-models",
          "versions_count": 214,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 5344,
          "first_published_at": "2026-02-21T22:40:09.010000Z",
          "latest_published_at": "2026-07-18T12:19:20.556000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        }
      ]
    },
    "popularity": {
      "forks": 238,
      "stars": 2186,
      "watchers": 18,
      "fork_history": {
        "days": [
          {
            "date": "2026-02-21",
            "count": 1
          },
          {
            "date": "2026-02-22",
            "count": 12
          },
          {
            "date": "2026-02-23",
            "count": 6
          },
          {
            "date": "2026-02-24",
            "count": 3
          },
          {
            "date": "2026-02-25",
            "count": 3
          },
          {
            "date": "2026-02-26",
            "count": 5
          },
          {
            "date": "2026-02-27",
            "count": 3
          },
          {
            "date": "2026-02-28",
            "count": 1
          },
          {
            "date": "2026-03-01",
            "count": 2
          },
          {
            "date": "2026-03-03",
            "count": 3
          },
          {
            "date": "2026-03-05",
            "count": 1
          },
          {
            "date": "2026-03-06",
            "count": 1
          },
          {
            "date": "2026-03-07",
            "count": 2
          },
          {
            "date": "2026-03-11",
            "count": 1
          },
          {
            "date": "2026-03-12",
            "count": 1
          },
          {
            "date": "2026-03-13",
            "count": 2
          },
          {
            "date": "2026-03-14",
            "count": 2
          },
          {
            "date": "2026-03-15",
            "count": 3
          },
          {
            "date": "2026-03-16",
            "count": 4
          },
          {
            "date": "2026-03-20",
            "count": 1
          },
          {
            "date": "2026-03-21",
            "count": 1
          },
          {
            "date": "2026-03-27",
            "count": 3
          },
          {
            "date": "2026-04-02",
            "count": 1
          },
          {
            "date": "2026-04-04",
            "count": 13
          },
          {
            "date": "2026-04-05",
            "count": 25
          },
          {
            "date": "2026-04-06",
            "count": 17
          },
          {
            "date": "2026-04-07",
            "count": 5
          },
          {
            "date": "2026-04-08",
            "count": 5
          },
          {
            "date": "2026-04-09",
            "count": 3
          },
          {
            "date": "2026-04-10",
            "count": 2
          },
          {
            "date": "2026-04-11",
            "count": 1
          },
          {
            "date": "2026-04-12",
            "count": 8
          },
          {
            "date": "2026-04-13",
            "count": 5
          },
          {
            "date": "2026-04-14",
            "count": 1
          },
          {
            "date": "2026-04-15",
            "count": 3
          },
          {
            "date": "2026-04-16",
            "count": 1
          },
          {
            "date": "2026-04-17",
            "count": 3
          },
          {
            "date": "2026-04-18",
            "count": 2
          },
          {
            "date": "2026-04-19",
            "count": 3
          },
          {
            "date": "2026-04-22",
            "count": 1
          },
          {
            "date": "2026-04-23",
            "count": 1
          },
          {
            "date": "2026-04-24",
            "count": 1
          },
          {
            "date": "2026-04-25",
            "count": 1
          },
          {
            "date": "2026-04-26",
            "count": 1
          },
          {
            "date": "2026-04-27",
            "count": 2
          },
          {
            "date": "2026-04-28",
            "count": 3
          },
          {
            "date": "2026-04-29",
            "count": 3
          },
          {
            "date": "2026-04-30",
            "count": 5
          },
          {
            "date": "2026-05-02",
            "count": 3
          },
          {
            "date": "2026-05-03",
            "count": 6
          },
          {
            "date": "2026-05-04",
            "count": 1
          },
          {
            "date": "2026-05-05",
            "count": 2
          },
          {
            "date": "2026-05-07",
            "count": 2
          },
          {
            "date": "2026-05-09",
            "count": 1
          },
          {
            "date": "2026-05-10",
            "count": 4
          },
          {
            "date": "2026-05-12",
            "count": 1
          },
          {
            "date": "2026-05-16",
            "count": 1
          },
          {
            "date": "2026-05-17",
            "count": 1
          },
          {
            "date": "2026-05-18",
            "count": 1
          },
          {
            "date": "2026-05-21",
            "count": 2
          },
          {
            "date": "2026-05-23",
            "count": 1
          },
          {
            "date": "2026-05-24",
            "count": 1
          },
          {
            "date": "2026-05-27",
            "count": 1
          },
          {
            "date": "2026-05-29",
            "count": 1
          },
          {
            "date": "2026-05-30",
            "count": 3
          },
          {
            "date": "2026-05-31",
            "count": 1
          },
          {
            "date": "2026-06-02",
            "count": 1
          },
          {
            "date": "2026-06-05",
            "count": 1
          },
          {
            "date": "2026-06-06",
            "count": 1
          },
          {
            "date": "2026-06-08",
            "count": 1
          },
          {
            "date": "2026-06-09",
            "count": 3
          },
          {
            "date": "2026-06-11",
            "count": 1
          },
          {
            "date": "2026-06-12",
            "count": 1
          },
          {
            "date": "2026-06-14",
            "count": 1
          },
          {
            "date": "2026-06-15",
            "count": 2
          },
          {
            "date": "2026-06-16",
            "count": 2
          },
          {
            "date": "2026-06-17",
            "count": 2
          },
          {
            "date": "2026-06-20",
            "count": 1
          },
          {
            "date": "2026-06-25",
            "count": 1
          },
          {
            "date": "2026-06-27",
            "count": 1
          },
          {
            "date": "2026-06-28",
            "count": 1
          },
          {
            "date": "2026-07-01",
            "count": 2
          },
          {
            "date": "2026-07-02",
            "count": 1
          },
          {
            "date": "2026-07-03",
            "count": 1
          },
          {
            "date": "2026-07-05",
            "count": 1
          },
          {
            "date": "2026-07-11",
            "count": 1
          },
          {
            "date": "2026-07-20",
            "count": 1
          },
          {
            "date": "2026-07-22",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 238,
        "total_forks": 238
      },
      "star_history": null,
      "open_issues_and_prs": 25
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "website/tsconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 279662,
      "source_files_sampled": 171,
      "oversized_source_files": 5,
      "agent_instruction_files": [
        "AGENTS.md",
        "CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 14156
    },
    "dependencies": {
      "manifests": [
        "opencode-plugin/package.json",
        "package.json",
        "pi-extension/package.json",
        "web/package.json",
        "website/package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "shell-quote",
            "direct": false,
            "version": "1.8.4",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-395f-4hp3-45gv"
            ],
            "fixed_version": "1.9.0",
            "advisory_count": 1,
            "oldest_advisory_days": 2
          },
          {
            "name": "ws",
            "direct": false,
            "version": "8.20.1",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-96hv-2xvq-fx4p"
            ],
            "fixed_version": "8.21.0",
            "advisory_count": 1,
            "oldest_advisory_days": 38
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "high": 2
        },
        "advisory_count": 2,
        "affected_count": 2,
        "assessed_count": 393,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 22,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [
        {
          "name": "@tabler/icons-react",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.44.0"
        },
        {
          "name": "@tanstack/react-table",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.21.3"
        },
        {
          "name": "chalk",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.6.2"
        },
        {
          "name": "kandown",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.8.0"
        },
        {
          "name": "socket.io",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.8.3"
        },
        {
          "name": "socket.io-client",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.8.3"
        },
        {
          "name": "@tanstack/react-virtual",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.14.2"
        },
        {
          "name": "@fontsource-variable/geist",
          "manifest": "website/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.2.9"
        },
        {
          "name": "@fontsource-variable/geist-mono",
          "manifest": "website/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.2.8"
        },
        {
          "name": "@tailwindcss/vite",
          "manifest": "website/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.1.18"
        },
        {
          "name": "@tanstack/react-devtools",
          "manifest": "website/package.json",
          "ecosystem": "npm",
          "version_constraint": "latest"
        },
        {
          "name": "@tanstack/react-router",
          "manifest": "website/package.json",
          "ecosystem": "npm",
          "version_constraint": "latest"
        },
        {
          "name": "@tanstack/react-router-devtools",
          "manifest": "website/package.json",
          "ecosystem": "npm",
          "version_constraint": "latest"
        },
        {
          "name": "@tanstack/react-router-ssr-query",
          "manifest": "website/package.json",
          "ecosystem": "npm",
          "version_constraint": "latest"
        },
        {
          "name": "@tanstack/react-start",
          "manifest": "website/package.json",
          "ecosystem": "npm",
          "version_constraint": "latest"
        },
        {
          "name": "@tanstack/router-plugin",
          "manifest": "website/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.132.0"
        },
        {
          "name": "clsx",
          "manifest": "website/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.1.1"
        },
        {
          "name": "lucide-react",
          "manifest": "website/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.545.0"
        },
        {
          "name": "react",
          "manifest": "website/package.json",
          "ecosystem": "npm",
          "version_constraint": "^19.2.0"
        },
        {
          "name": "react-dom",
          "manifest": "website/package.json",
          "ecosystem": "npm",
          "version_constraint": "^19.2.0"
        },
        {
          "name": "tailwind-merge",
          "manifest": "website/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.6.0"
        },
        {
          "name": "tailwindcss",
          "manifest": "website/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.1.18"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@fontsource-variable/geist",
            "direct": true,
            "version": "^5.2.9",
            "ecosystem": "npm"
          },
          {
            "name": "@fontsource-variable/geist-mono",
            "direct": true,
            "version": "^5.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "@tabler/icons-react",
            "direct": true,
            "version": "3.44.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/vite",
            "direct": true,
            "version": "^4.1.18",
            "ecosystem": "npm"
          },
          {
            "name": "@tanstack/react-devtools",
            "direct": true,
            "version": "latest",
            "ecosystem": "npm"
          },
          {
            "name": "@tanstack/react-router",
            "direct": true,
            "version": "latest",
            "ecosystem": "npm"
          },
          {
            "name": "@tanstack/react-router-devtools",
            "direct": true,
            "version": "latest",
            "ecosystem": "npm"
          },
          {
            "name": "@tanstack/react-router-ssr-query",
            "direct": true,
            "version": "latest",
            "ecosystem": "npm"
          },
          {
            "name": "@tanstack/react-start",
            "direct": true,
            "version": "latest",
            "ecosystem": "npm"
          },
          {
            "name": "@tanstack/react-table",
            "direct": true,
            "version": "8.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@tanstack/react-virtual",
            "direct": true,
            "version": "3.14.3",
            "ecosystem": "npm"
          },
          {
            "name": "@tanstack/router-plugin",
            "direct": true,
            "version": "^1.132.0",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": true,
            "version": "5.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": true,
            "version": "^4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "clsx",
            "direct": true,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "clsx",
            "direct": true,
            "version": "^2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "kandown",
            "direct": true,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "kandown",
            "direct": true,
            "version": "0.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "lucide-react",
            "direct": true,
            "version": "1.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "lucide-react",
            "direct": true,
            "version": "^0.545.0",
            "ecosystem": "npm"
          },
          {
            "name": "react",
            "direct": true,
            "version": "19.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "react",
            "direct": true,
            "version": "^19.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "react-dom",
            "direct": true,
            "version": "19.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "react-dom",
            "direct": true,
            "version": "^19.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "socket.io",
            "direct": true,
            "version": "4.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "socket.io-client",
            "direct": true,
            "version": "4.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "tailwind-merge",
            "direct": true,
            "version": "3.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "tailwind-merge",
            "direct": true,
            "version": "^3.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "tailwindcss",
            "direct": true,
            "version": "^4.1.18",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/runtime",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@biomejs/biome",
            "direct": false,
            "version": "2.4.5",
            "ecosystem": "npm"
          },
          {
            "name": "@blocknote/code-block",
            "direct": false,
            "version": "0.49.0",
            "ecosystem": "npm"
          },
          {
            "name": "@blocknote/core",
            "direct": false,
            "version": "0.49.0",
            "ecosystem": "npm"
          },
          {
            "name": "@blocknote/mantine",
            "direct": false,
            "version": "0.49.0",
            "ecosystem": "npm"
          },
          {
            "name": "@blocknote/react",
            "direct": false,
            "version": "0.49.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/wasi-threads",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@emoji-mart/data",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@floating-ui/core",
            "direct": false,
            "version": "1.7.5",
            "ecosystem": "npm"
          },
          {
            "name": "@floating-ui/dom",
            "direct": false,
            "version": "1.7.6",
            "ecosystem": "npm"
          },
          {
            "name": "@floating-ui/react",
            "direct": false,
            "version": "0.27.19",
            "ecosystem": "npm"
          },
          {
            "name": "@floating-ui/react-dom",
            "direct": false,
            "version": "2.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "@floating-ui/utils",
            "direct": false,
            "version": "0.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "@handlewithcare/prosemirror-inputrules",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@mantine/core",
            "direct": false,
            "version": "8.3.18",
            "ecosystem": "npm"
          },
          {
            "name": "@mantine/hooks",
            "direct": false,
            "version": "8.3.18",
            "ecosystem": "npm"
          },
          {
            "name": "@mantine/utils",
            "direct": false,
            "version": "6.0.22",
            "ecosystem": "npm"
          },
          {
            "name": "@napi-rs/wasm-runtime",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-project/runtime",
            "direct": false,
            "version": "0.133.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-project/types",
            "direct": false,
            "version": "0.133.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxfmt/binding-android-arm-eabi",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxfmt/binding-android-arm64",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxfmt/binding-darwin-arm64",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxfmt/binding-darwin-x64",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxfmt/binding-freebsd-x64",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxfmt/binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxfmt/binding-linux-arm-musleabihf",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxfmt/binding-linux-arm64-gnu",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxfmt/binding-linux-arm64-musl",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxfmt/binding-linux-ppc64-gnu",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxfmt/binding-linux-riscv64-gnu",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxfmt/binding-linux-riscv64-musl",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxfmt/binding-linux-s390x-gnu",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxfmt/binding-linux-x64-gnu",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxfmt/binding-linux-x64-musl",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxfmt/binding-openharmony-arm64",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxfmt/binding-win32-arm64-msvc",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxfmt/binding-win32-ia32-msvc",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxfmt/binding-win32-x64-msvc",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint-tsgolint/darwin-arm64",
            "direct": false,
            "version": "0.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint-tsgolint/darwin-x64",
            "direct": false,
            "version": "0.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint-tsgolint/linux-arm64",
            "direct": false,
            "version": "0.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint-tsgolint/linux-x64",
            "direct": false,
            "version": "0.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint-tsgolint/win32-arm64",
            "direct": false,
            "version": "0.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint-tsgolint/win32-x64",
            "direct": false,
            "version": "0.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-android-arm-eabi",
            "direct": false,
            "version": "1.67.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-android-arm64",
            "direct": false,
            "version": "1.67.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-darwin-arm64",
            "direct": false,
            "version": "1.67.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-darwin-x64",
            "direct": false,
            "version": "1.67.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-freebsd-x64",
            "direct": false,
            "version": "1.67.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.67.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-linux-arm-musleabihf",
            "direct": false,
            "version": "1.67.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-linux-arm64-gnu",
            "direct": false,
            "version": "1.67.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-linux-arm64-musl",
            "direct": false,
            "version": "1.67.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-linux-ppc64-gnu",
            "direct": false,
            "version": "1.67.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-linux-riscv64-gnu",
            "direct": false,
            "version": "1.67.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-linux-riscv64-musl",
            "direct": false,
            "version": "1.67.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-linux-s390x-gnu",
            "direct": false,
            "version": "1.67.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-linux-x64-gnu",
            "direct": false,
            "version": "1.67.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-linux-x64-musl",
            "direct": false,
            "version": "1.67.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-openharmony-arm64",
            "direct": false,
            "version": "1.67.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-win32-arm64-msvc",
            "direct": false,
            "version": "1.67.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-win32-ia32-msvc",
            "direct": false,
            "version": "1.67.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/binding-win32-x64-msvc",
            "direct": false,
            "version": "1.67.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxlint/plugins",
            "direct": false,
            "version": "1.61.0",
            "ecosystem": "npm"
          },
          {
            "name": "@polka/url",
            "direct": false,
            "version": "1.0.0-next.29",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-compose-refs",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-slot",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-android-arm64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-arm64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-x64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-freebsd-x64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-musl",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-ppc64-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-s390x-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-musl",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-openharmony-arm64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-wasm32-wasi",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-arm64-msvc",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-x64-msvc",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/pluginutils",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/core",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/engine-javascript",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/langs-precompiled",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/primitive",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/themes",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/types",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/vscode-textmate",
            "direct": false,
            "version": "10.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@socket.io/component-emitter",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@standard-schema/spec",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tabler/icons",
            "direct": false,
            "version": "3.44.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/typography",
            "direct": false,
            "version": "^0.5.16",
            "ecosystem": "npm"
          },
          {
            "name": "@tanstack/devtools-vite",
            "direct": false,
            "version": "latest",
            "ecosystem": "npm"
          },
          {
            "name": "@tanstack/react-store",
            "direct": false,
            "version": "0.7.7",
            "ecosystem": "npm"
          },
          {
            "name": "@tanstack/store",
            "direct": false,
            "version": "0.7.7",
            "ecosystem": "npm"
          },
          {
            "name": "@tanstack/table-core",
            "direct": false,
            "version": "8.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "@tanstack/virtual-core",
            "direct": false,
            "version": "3.17.1",
            "ecosystem": "npm"
          },
          {
            "name": "@testing-library/dom",
            "direct": false,
            "version": "^10.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "@testing-library/react",
            "direct": false,
            "version": "^16.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/core",
            "direct": false,
            "version": "3.25.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/core",
            "direct": false,
            "version": "3.26.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-bold",
            "direct": false,
            "version": "3.25.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-bold",
            "direct": false,
            "version": "3.26.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-bubble-menu",
            "direct": false,
            "version": "3.25.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-bubble-menu",
            "direct": false,
            "version": "3.26.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-code",
            "direct": false,
            "version": "3.25.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-code",
            "direct": false,
            "version": "3.26.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-floating-menu",
            "direct": false,
            "version": "3.25.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-floating-menu",
            "direct": false,
            "version": "3.26.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-horizontal-rule",
            "direct": false,
            "version": "3.25.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-horizontal-rule",
            "direct": false,
            "version": "3.26.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-italic",
            "direct": false,
            "version": "3.25.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-italic",
            "direct": false,
            "version": "3.26.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-paragraph",
            "direct": false,
            "version": "3.25.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-paragraph",
            "direct": false,
            "version": "3.26.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-strike",
            "direct": false,
            "version": "3.25.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-strike",
            "direct": false,
            "version": "3.26.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-text",
            "direct": false,
            "version": "3.25.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-text",
            "direct": false,
            "version": "3.26.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-underline",
            "direct": false,
            "version": "3.25.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-underline",
            "direct": false,
            "version": "3.26.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extensions",
            "direct": false,
            "version": "3.25.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extensions",
            "direct": false,
            "version": "3.26.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/pm",
            "direct": false,
            "version": "3.25.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/pm",
            "direct": false,
            "version": "3.26.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/react",
            "direct": false,
            "version": "3.25.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/react",
            "direct": false,
            "version": "3.26.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tybys/wasm-util",
            "direct": false,
            "version": "0.10.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/chai",
            "direct": false,
            "version": "5.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/cors",
            "direct": false,
            "version": "2.8.19",
            "ecosystem": "npm"
          },
          {
            "name": "@types/debug",
            "direct": false,
            "version": "4.1.13",
            "ecosystem": "npm"
          },
          {
            "name": "@types/deep-eql",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/hast",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/mdast",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/ms",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "25.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "^22.10.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/react",
            "direct": false,
            "version": "19.2.16",
            "ecosystem": "npm"
          },
          {
            "name": "@types/react",
            "direct": false,
            "version": "19.2.17",
            "ecosystem": "npm"
          },
          {
            "name": "@types/react",
            "direct": false,
            "version": "^19.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/react-dom",
            "direct": false,
            "version": "19.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/react-dom",
            "direct": false,
            "version": "^19.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/unist",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/use-sync-external-store",
            "direct": false,
            "version": "0.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/use-sync-external-store",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/ws",
            "direct": false,
            "version": "8.18.1",
            "ecosystem": "npm"
          },
          {
            "name": "@ungap/structured-clone",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "@vitejs/plugin-react",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vitejs/plugin-react",
            "direct": false,
            "version": "^6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@voidzero-dev/vite-plus-core",
            "direct": false,
            "version": "0.1.24",
            "ecosystem": "npm"
          },
          {
            "name": "@voidzero-dev/vite-plus-darwin-arm64",
            "direct": false,
            "version": "0.1.24",
            "ecosystem": "npm"
          },
          {
            "name": "@voidzero-dev/vite-plus-darwin-x64",
            "direct": false,
            "version": "0.1.24",
            "ecosystem": "npm"
          },
          {
            "name": "@voidzero-dev/vite-plus-linux-arm64-gnu",
            "direct": false,
            "version": "0.1.24",
            "ecosystem": "npm"
          },
          {
            "name": "@voidzero-dev/vite-plus-linux-arm64-musl",
            "direct": false,
            "version": "0.1.24",
            "ecosystem": "npm"
          },
          {
            "name": "@voidzero-dev/vite-plus-linux-x64-gnu",
            "direct": false,
            "version": "0.1.24",
            "ecosystem": "npm"
          },
          {
            "name": "@voidzero-dev/vite-plus-linux-x64-musl",
            "direct": false,
            "version": "0.1.24",
            "ecosystem": "npm"
          },
          {
            "name": "@voidzero-dev/vite-plus-test",
            "direct": false,
            "version": "0.1.24",
            "ecosystem": "npm"
          },
          {
            "name": "@voidzero-dev/vite-plus-win32-arm64-msvc",
            "direct": false,
            "version": "0.1.24",
            "ecosystem": "npm"
          },
          {
            "name": "@voidzero-dev/vite-plus-win32-x64-msvc",
            "direct": false,
            "version": "0.1.24",
            "ecosystem": "npm"
          },
          {
            "name": "accepts",
            "direct": false,
            "version": "1.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "assertion-error",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "bail",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "base64id",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ccount",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "character-entities",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "character-entities-html4",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "character-entities-legacy",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "chokidar",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "class-variance-authority",
            "direct": false,
            "version": "0.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "comma-separated-tokens",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "cookie",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "cors",
            "direct": false,
            "version": "2.8.6",
            "ecosystem": "npm"
          },
          {
            "name": "csstype",
            "direct": false,
            "version": "3.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "decode-named-character-reference",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "dequal",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "detect-libc",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "detect-node-es",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "devlop",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-mart",
            "direct": false,
            "version": "5.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "engine.io",
            "direct": false,
            "version": "6.6.8",
            "ecosystem": "npm"
          },
          {
            "name": "engine.io-client",
            "direct": false,
            "version": "6.6.5",
            "ecosystem": "npm"
          },
          {
            "name": "engine.io-parser",
            "direct": false,
            "version": "5.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-module-lexer",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "extend",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "fast-deep-equal",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-equals",
            "direct": false,
            "version": "5.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "get-nonce",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-embedded",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-format",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-from-dom",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-from-html",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-from-parse5",
            "direct": false,
            "version": "8.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-has-property",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-is-body-ok-link",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-is-element",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-minify-whitespace",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-parse-selector",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-phrasing",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-to-html",
            "direct": false,
            "version": "9.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-to-mdast",
            "direct": false,
            "version": "10.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-to-text",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-whitespace",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "hastscript",
            "direct": false,
            "version": "9.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "html-void-elements",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "html-whitespace-sensitive-tag-names",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-plain-obj",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "isomorphic.js",
            "direct": false,
            "version": "0.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "jsdom",
            "direct": false,
            "version": "^28.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "lib0",
            "direct": false,
            "version": "0.2.117",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-android-arm64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-arm64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-x64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-freebsd-x64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-gnu",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-musl",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-gnu",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-musl",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-arm64-msvc",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-x64-msvc",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.merge",
            "direct": false,
            "version": "4.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "longest-streak",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-table",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-find-and-replace",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-from-markdown",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-gfm",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-gfm-autolink-literal",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-gfm-footnote",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-gfm-strikethrough",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-gfm-table",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-gfm-task-list-item",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-phrasing",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-to-hast",
            "direct": false,
            "version": "13.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-to-markdown",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-to-string",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "micromark",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-core-commonmark",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-extension-gfm",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-extension-gfm-autolink-literal",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-extension-gfm-footnote",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-extension-gfm-strikethrough",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-extension-gfm-table",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-extension-gfm-tagfilter",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-extension-gfm-task-list-item",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-factory-destination",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-factory-label",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-factory-space",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-factory-title",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-factory-whitespace",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-character",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-chunked",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-classify-character",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-combine-extensions",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-decode-numeric-character-reference",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-decode-string",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-encode",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-html-tag-name",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-normalize-identifier",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-resolve-all",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-sanitize-uri",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-subtokenize",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-symbol",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-types",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "mime-db",
            "direct": false,
            "version": "1.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-types",
            "direct": false,
            "version": "2.1.35",
            "ecosystem": "npm"
          },
          {
            "name": "mrmime",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.12",
            "ecosystem": "npm"
          },
          {
            "name": "negotiator",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "object-assign",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "obug",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "obug",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "oniguruma-parser",
            "direct": false,
            "version": "0.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "oniguruma-to-es",
            "direct": false,
            "version": "4.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "orderedmap",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "oxfmt",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "oxlint",
            "direct": false,
            "version": "1.67.0",
            "ecosystem": "npm"
          },
          {
            "name": "oxlint-tsgolint",
            "direct": false,
            "version": "0.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse5",
            "direct": false,
            "version": "7.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "pixelmatch",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "pngjs",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.15",
            "ecosystem": "npm"
          },
          {
            "name": "property-information",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-changeset",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-commands",
            "direct": false,
            "version": "1.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-dropcursor",
            "direct": false,
            "version": "1.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-gapcursor",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-highlight",
            "direct": false,
            "version": "0.15.1",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-history",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-inputrules",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-keymap",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-model",
            "direct": false,
            "version": "1.25.7",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-schema-list",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-state",
            "direct": false,
            "version": "1.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-tables",
            "direct": false,
            "version": "1.8.5",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-transform",
            "direct": false,
            "version": "1.12.0",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-view",
            "direct": false,
            "version": "1.41.8",
            "ecosystem": "npm"
          },
          {
            "name": "react-devtools-core",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "react-icons",
            "direct": false,
            "version": "5.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "react-number-format",
            "direct": false,
            "version": "5.4.5",
            "ecosystem": "npm"
          },
          {
            "name": "react-remove-scroll",
            "direct": false,
            "version": "2.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "react-remove-scroll-bar",
            "direct": false,
            "version": "2.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "react-style-singleton",
            "direct": false,
            "version": "2.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "react-textarea-autosize",
            "direct": false,
            "version": "8.5.9",
            "ecosystem": "npm"
          },
          {
            "name": "readdirp",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "regex-recursion",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "regex-utilities",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "rehype-format",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "rehype-minify-whitespace",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "rehype-parse",
            "direct": false,
            "version": "9.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "rehype-remark",
            "direct": false,
            "version": "10.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "rehype-stringify",
            "direct": false,
            "version": "10.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "remark-gfm",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "remark-parse",
            "direct": false,
            "version": "11.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "remark-rehype",
            "direct": false,
            "version": "11.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "remark-stringify",
            "direct": false,
            "version": "11.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "rolldown",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "rope-sequence",
            "direct": false,
            "version": "1.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "scheduler",
            "direct": false,
            "version": "0.27.0",
            "ecosystem": "npm"
          },
          {
            "name": "shell-quote",
            "direct": false,
            "version": "1.8.4",
            "ecosystem": "npm"
          },
          {
            "name": "signal-exit",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "sirv",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "socket.io-adapter",
            "direct": false,
            "version": "2.5.7",
            "ecosystem": "npm"
          },
          {
            "name": "socket.io-parser",
            "direct": false,
            "version": "4.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-js",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "space-separated-tokens",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "std-env",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "stringify-entities",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "tabbable",
            "direct": false,
            "version": "6.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinybench",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyexec",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "npm"
          },
          {
            "name": "tinypool",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "totalist",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "trim-lines",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "trim-trailing-lines",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "trough",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "4.41.0",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "^6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "7.24.6",
            "ecosystem": "npm"
          },
          {
            "name": "unified",
            "direct": false,
            "version": "11.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-find-after",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-is",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-position",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-stringify-position",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-visit",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-visit-parents",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "use-callback-ref",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "use-composed-ref",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "use-isomorphic-layout-effect",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "use-latest",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "use-sidecar",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "use-sync-external-store",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "vary",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "vfile",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "vfile-location",
            "direct": false,
            "version": "5.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "vfile-message",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "8.0.16",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "^8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "vite-plus",
            "direct": false,
            "version": "0.1.24",
            "ecosystem": "npm"
          },
          {
            "name": "vitest",
            "direct": false,
            "version": "^4.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "w3c-keyname",
            "direct": false,
            "version": "2.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "web-namespaces",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ws",
            "direct": false,
            "version": "7.5.11",
            "ecosystem": "npm"
          },
          {
            "name": "ws",
            "direct": false,
            "version": "8.20.1",
            "ecosystem": "npm"
          },
          {
            "name": "ws",
            "direct": false,
            "version": "8.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "xmlhttprequest-ssl",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "y-prosemirror",
            "direct": false,
            "version": "1.3.7",
            "ecosystem": "npm"
          },
          {
            "name": "y-protocols",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "yjs",
            "direct": false,
            "version": "13.6.31",
            "ecosystem": "npm"
          },
          {
            "name": "zwitch",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 415,
        "direct_count": 29,
        "indirect_count": 386
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 8,
        "merged_prs": 42,
        "open_issues": 17,
        "closed_ratio": 0.717,
        "closed_issues": 43,
        "closed_unmerged_prs": 26
      },
      "bus_factor": 1,
      "bot_contributors": 3,
      "top_contributors": [
        {
          "type": "User",
          "login": "vava-nessa",
          "commits": 513,
          "avatar_url": "https://avatars.githubusercontent.com/u/5466264?v=4"
        },
        {
          "type": "User",
          "login": "PhucTruong-ctrl",
          "commits": 17,
          "avatar_url": "https://avatars.githubusercontent.com/u/21700150?v=4"
        },
        {
          "type": "User",
          "login": "erwinh22",
          "commits": 11,
          "avatar_url": "https://avatars.githubusercontent.com/u/6641858?v=4"
        },
        {
          "type": "User",
          "login": "chindris-mihai-alexandru",
          "commits": 7,
          "avatar_url": "https://avatars.githubusercontent.com/u/12643176?v=4"
        },
        {
          "type": "User",
          "login": "whit3rabbit",
          "commits": 5,
          "avatar_url": "https://avatars.githubusercontent.com/u/12357518?v=4"
        },
        {
          "type": "User",
          "login": "serajbaltu",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/100094038?v=4"
        },
        {
          "type": "User",
          "login": "MoriDanWork",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/55363096?v=4"
        },
        {
          "type": "User",
          "login": "stgreenb",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/18483964?v=4"
        },
        {
          "type": "User",
          "login": "skylaweber",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/172871734?v=4"
        },
        {
          "type": "User",
          "login": "kwpale",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/22188849?v=4"
        }
      ],
      "contributors_sampled": 10,
      "top_contributor_share": 0.913
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "check-discord-link.yml",
        "commit-log.yml",
        "discord-issues.yml",
        "discord-prs.yml",
        "docker.yml",
        "release.yml",
        "security-audit.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        "biome.json"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "package-lock.json",
        "pnpm-lock.yaml"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "3 out of 3 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 1,
            "reason": "Found 3/30 approved changesets -- score normalized to 1",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 3 contributing companies or organizations -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 0,
            "reason": "dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 9,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 13 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 8,
            "reason": "2 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "fc83df1abee1b8e5e755f5d4b97caeea8d5ef701",
        "ran_at": "2026-07-23T19:59:36Z",
        "aggregate_score": 4.8,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-23T13:25:57Z",
      "oldest_open_prs": [
        {
          "number": 125,
          "created_at": "2026-06-22T04:27:57Z",
          "last_comment_at": "2026-06-22T04:28:00Z",
          "last_comment_author": "vercel"
        },
        {
          "number": 130,
          "created_at": "2026-06-29T04:26:59Z",
          "last_comment_at": "2026-06-29T04:27:02Z",
          "last_comment_author": "vercel"
        },
        {
          "number": 131,
          "created_at": "2026-06-29T04:27:12Z",
          "last_comment_at": "2026-06-29T04:27:15Z",
          "last_comment_author": "vercel"
        },
        {
          "number": 134,
          "created_at": "2026-07-06T04:26:48Z",
          "last_comment_at": "2026-07-06T04:26:52Z",
          "last_comment_author": "vercel"
        },
        {
          "number": 135,
          "created_at": "2026-07-06T04:27:06Z",
          "last_comment_at": "2026-07-06T04:27:08Z",
          "last_comment_author": "vercel"
        },
        {
          "number": 136,
          "created_at": "2026-07-06T04:27:15Z",
          "last_comment_at": "2026-07-06T04:27:18Z",
          "last_comment_author": "vercel"
        },
        {
          "number": 138,
          "created_at": "2026-07-20T04:32:15Z",
          "last_comment_at": "2026-07-20T04:32:18Z",
          "last_comment_author": "vercel"
        },
        {
          "number": 139,
          "created_at": "2026-07-22T07:56:43Z",
          "last_comment_at": "2026-07-22T07:56:48Z",
          "last_comment_author": "vercel"
        }
      ],
      "last_merged_pr_at": "2026-06-27T15:34:34Z",
      "ci_last_conclusion": "FAILURE",
      "oldest_open_issues": [
        {
          "number": 18,
          "created_at": "2026-02-25T02:15:50Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 21,
          "created_at": "2026-02-26T13:45:01Z",
          "last_comment_at": "2026-03-22T05:28:40Z",
          "last_comment_author": "Rishabh-Bajpai"
        },
        {
          "number": 27,
          "created_at": "2026-02-27T20:21:25Z",
          "last_comment_at": "2026-03-13T20:17:29Z",
          "last_comment_author": "iTzFaisal"
        },
        {
          "number": 30,
          "created_at": "2026-03-03T15:37:03Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 35,
          "created_at": "2026-03-07T15:01:15Z",
          "last_comment_at": "2026-03-29T10:20:05Z",
          "last_comment_author": "Nsomnia"
        },
        {
          "number": 51,
          "created_at": "2026-03-31T08:59:38Z",
          "last_comment_at": "2026-03-31T09:37:58Z",
          "last_comment_author": "vava-nessa"
        },
        {
          "number": 75,
          "created_at": "2026-04-21T06:46:02Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 101,
          "created_at": "2026-05-28T15:40:11Z",
          "last_comment_at": "2026-05-28T15:44:53Z",
          "last_comment_author": "karneaud"
        },
        {
          "number": 109,
          "created_at": "2026-06-02T23:07:05Z",
          "last_comment_at": "2026-06-07T23:13:36Z",
          "last_comment_author": "karneaud"
        },
        {
          "number": 116,
          "created_at": "2026-06-10T17:58:55Z",
          "last_comment_at": "2026-06-11T11:56:02Z",
          "last_comment_author": "vava-nessa"
        },
        {
          "number": 117,
          "created_at": "2026-06-10T17:59:07Z",
          "last_comment_at": "2026-06-11T12:25:50Z",
          "last_comment_author": "vava-nessa"
        },
        {
          "number": 118,
          "created_at": "2026-06-11T14:59:41Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 119,
          "created_at": "2026-06-12T17:15:31Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 124,
          "created_at": "2026-06-21T18:57:54Z",
          "last_comment_at": "2026-06-23T05:38:02Z",
          "last_comment_author": "houleixx"
        },
        {
          "number": 133,
          "created_at": "2026-07-04T06:03:55Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 137,
          "created_at": "2026-07-08T18:30:37Z",
          "last_comment_at": "2026-07-08T18:46:17Z",
          "last_comment_author": "stgreenb"
        },
        {
          "number": 140,
          "created_at": "2026-07-22T21:35:11Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/vava-nessa/free-coding-models",
    "host": "github.com",
    "name": "free-coding-models",
    "owner": "vava-nessa"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 71,
      "inputs": {
        "security": 58,
        "vitality": 87,
        "community": 63,
        "governance": 59,
        "engineering": 86
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 87,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 78,
            "inputs": {
              "commits_last_year": 599,
              "human_commit_share": 0.92,
              "days_since_last_push": 3,
              "active_weeks_last_year": 21
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 3 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 3
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "21/52 weeks with commits",
                "points": 14.5,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 21
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "599 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 599
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 13 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 100,
              "latest_release_tag": "v0.5.50",
              "releases_from_tags": false,
              "days_since_latest_release": 5,
              "mean_days_between_releases": 1.2
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "100 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 5 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~1.2 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 1.2
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "repository_too_young",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 63,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "good",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 81,
            "inputs": {
              "forks": 238,
              "stars": 2186,
              "watchers": 18,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "2,186 stars",
                "points": 54.2,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 2186
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "238 forks",
                "points": 19.8,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 238
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "18 watchers",
                "points": 6.8,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 18
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "at_risk",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 44,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file present, not a recognized license",
                "points": 16.9,
                "status": "partial",
                "details": [
                  {
                    "code": "license_custom",
                    "params": {}
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "moderate",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 62,
            "inputs": {
              "packages": [
                "free-coding-models"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 5344
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "5,344 downloads/month across npm",
                "points": 49.7,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 5344,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 59,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 34,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 10,
              "top_contributor_share": 0.913
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 91% of commits",
                "points": 2,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 91
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "10 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 3 contributing companies or organizations -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "moderate",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 59,
            "inputs": {
              "merged_prs": 42,
              "open_issues": 17,
              "closed_issues": 43,
              "issue_closed_ratio": 0.717,
              "closed_unmerged_prs": 26
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "72% of issues closed",
                "points": 33.5,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 72
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "42/68 decided PRs merged",
                "points": 23.6,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 42,
                      "decided": 68
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 3/30 approved changesets -- score normalized to 1",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 56,
            "inputs": {
              "followers": 123,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "vava-nessa",
              "public_repos": 10,
              "account_age_days": 4693
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "123 followers of vava-nessa",
                "points": 15.1,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 123,
                      "login": "vava-nessa"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "10 public repos, account ~12 yr old",
                "points": 19.6,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 10
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 12
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "free-coding-models"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 5
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 5 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "214 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 214
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "excellent",
        "name": "Engineering Quality",
        "value": 86,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 84,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "7 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": "biome.json",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "biome.json"
                    }
                  }
                ],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "3 out of 3 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [
                "ai",
                "deepseek",
                "free",
                "free-ai",
                "freeai",
                "gpt",
                "gptoss",
                "kimi",
                "nim",
                "nvidia",
                "nvidia-nim",
                "nvidia-nim-api",
                "nvidia-nims",
                "openclaw",
                "opencode"
              ],
              "has_wiki": false,
              "homepage": "https://freecodingmodels.vercel.app",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://freecodingmodels.vercel.app",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "15 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 15
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 58,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 48,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 4.8
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "3 out of 3 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 3/30 approved changesets -- score normalized to 1",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 3 contributing companies or organizations -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "dangerous workflow patterns detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 13 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "2 existing vulnerabilities detected",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 393 resolved dependencies against OSV; 22 could not be assessed (no resolved version, an unsupported ecosystem, or beyond the reported package list). This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories",
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 393
                }
              },
              {
                "code": "advisories_unassessed",
                "params": {
                  "count": 22
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 2,
              "affected_packages": 2,
              "assessed_packages": 393,
              "unassessed_packages": 22,
              "affected_by_severity": "high 2",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 393,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 6
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 68,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "moderate",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 69,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.446,
              "agent_instruction_files": [
                "AGENTS.md",
                "CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 14156
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md, CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.md, CLAUDE.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "41 of 92 human commits state their intent (structured subject or explanatory body)",
                "points": 23.8,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 41,
                      "sampled": 92
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 62,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "package-lock.json",
                "pnpm-lock.yaml"
              ],
              "has_dockerfile": true,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "website/tsconfig.json"
              ],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0.08
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": "biome.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "biome.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "website/tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "website/tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "8 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 8,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "good",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "primary_language": "HTML",
              "largest_source_bytes": 279662,
              "source_files_sampled": 171,
              "oversized_source_files": 5
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "HTML with type-check config (website/tsconfig.json)",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "typecheck_config_language",
                    "params": {
                      "files": "website/tsconfig.json",
                      "language": "HTML"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "5/171 source files over 60KB",
                "points": 53.4,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 171,
                      "oversized": 5
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "Could not fetch npm package 'fcm-pi' from its registry",
    "Could not fetch npm package 'fcm-opencode' from its registry",
    "deps.dev does not index npm:free-coding-models@0.5.50; advisories assessed against the repository dependency graph instead"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-23T19:59:52.501005Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/v/vava-nessa/free-coding-models.svg",
  "full_name": "vava-nessa/free-coding-models",
  "license_state": "custom",
  "license_spdx": null
}

Las puntuaciones son señales, no garantías. Reflejan prácticas públicamente visibles en GitHub; no son una auditoría de código ni una garantía de seguridad.

Los datos ausentes se excluyen y los pesos se renormalizan; nunca se puntúan como cero. La metodología es versionada y abierta: métricas v1.13.0, esquema v0.27.0 — metodología completa · wiki de métricas.

Cómo se sitúa un resultado dentro del registro general: estadísticas agregadasnpm.