Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 1.13.0 · 2026-07-26 05:21 UTC

ai-dynamo / aiconfigurator

Offline optimization of your disaggregated Dynamo graph

Python · RustApache-2.0★ 374 estrellas⑂ 141 forksdesde jul 2025Ver en GitHub ↗

ai-dynamo/aiconfigurator tiene un índice de salud de 82 sobre 100, lo que lo sitúa en la banda Bueno. Su puntuación más alta es Vitality (98/100) y la más baja, Security (62/100). Se actualizó por última vez hoy. 5 personas concentran la mayor parte del trabajo reciente.

82
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.

82
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

DynamoOrganización
738 seguidores15 repositorios públicosdesde mar 2025

Este repositorio está respaldado por una organización: una custodia compartida y responsable que puede sobrevivir a cualquier mantenedor individual.

Ecosistemas de paquetes

RegistroPaqueteVersiónDescargas / mesVersionesÚltima publicaciónEtiquetas
PyPIaiconfigurator0.10.0-13hace 10 díasdecodedistributeddynamogpuinferencellmnvidiaprefill

Métricas por categoría

Vitalidad

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

98Excelente · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 0 días
33.2/36Cadencia de commits — 48/52 semanas con commits
18/18Volumen de commits — 744 commits en el último año
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Datos de entrada utilizados
commits_last_year744
human_commit_share1
days_since_last_push0
active_weeks_last_year48
Cómo se puntúa
27/27Publica versiones — 12 versiones publicadas
36/36Recencia de las versiones — última versión hace 10 días
27/27Cadencia de publicación — una versión cada ~33,3 días
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count12
latest_release_tagv0.10.0
releases_from_tagsno
days_since_latest_release10
mean_days_between_releases33,3
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?

77Bueno · 18% del índice global
Cómo se puntúa
41.7/60Estrellas — 374 estrellas
17.9/25Forks — 141 forks
4.3/15Observadores — 7 observadores
Datos de entrada utilizados
forks141
stars374
watchers7
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
22.5/22.5README
22.5/22.5Licencia — licencia reconocida (Apache-2.0)
18/18Guía CONTRIBUTING
13.5/13.5Código de conducta
0/7.2Plantilla de issues
6.3/6.3Plantilla de PR
Datos de entrada utilizados
has_readme
has_license
has_contributing
has_issue_templateno
has_code_of_conduct
has_pull_request_template

Sostenibilidad y Gobernanza

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

79Bueno · 24% del índice global
Cómo se puntúa
45.9/54Factor bus — la mitad de los commits recae en 5 contribuyente(s)
19/22.5Distribución de commits — el principal contribuyente firma el 16% de los commits
13.5/13.5Amplitud de contribuyentes — 60 contribuyentes
10/10OpenSSF Scorecard: Contributors — project has 9 contributing companies or organizations
Datos de entrada utilizados
bus_factor5
contributors_sampled60
top_contributor_share0,156
Cómo se puntúa
22/46.8Resolución de issues — 47% de issues cerradas
30.2/38.3Aceptación de PR — 1031/1304 PR decididos fusionados
15/15OpenSSF Scorecard: Code-Review — all changesets reviewed
Datos de entrada utilizados
merged_prs1031
open_issues44
closed_issues39
issue_closed_ratio0,47
closed_unmerged_prs273
Cómo se puntúa
30/30Respaldo de la propiedad — propiedad de una organización
0/20Dominio verificado
20.6/25Alcance del propietario — 738 seguidores de ai-dynamo
11.6/25Trayectoria — 15 repos públicos, cuenta de ~1 años
Datos de entrada utilizados
followers738
owner_typeOrganization
is_verified
owner_loginai-dynamo
public_repos15
account_age_days509
Cómo se puntúa
25/25Publicado y resoluble — 1 paquete(s) en pypi
35/35Recencia de publicación — última publicación hace 10 días
20/20Historial de versiones — 13 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packagesaiconfigurator
ecosystemspypi
any_deprecatedno
min_days_since_publish10

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 — 18 flujo(s) de trabajo
24/24Pruebas presentes
16/16Configuración de linter — eslint.config.js
9.6/9.6Hooks de pre-commit
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 30 out of 30 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_config
Cómo se puntúa
30/30README
25/25Directorio de documentación
0/15Sitio de documentación / página del proyecto
10/10Descripción del repositorio
0/10Topics
10/10Wiki
Datos de entrada utilizados
topics
has_wiki
homepage
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?

62Moderado · 16% del índice global
Cómo se puntúa
7.5/7.5Binary-Artifacts — no binaries found in the repo
3.8/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 30 out of 30 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
7.5/7.5Code-Review — all changesets reviewed
2.5/2.5Contributors — project has 9 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Licencia — license file detected
7.5/7.5Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — sin datos
0.5/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 1
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
0/7.5Vulnerabilities — 28 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate5,3
Excluidos de la puntuación (sin datos o no aplicable): packaging, 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
25/25Dependencias indirectas libres de avisos conocidos — ninguna dependencia indirecta tiene un aviso conocido
0/40Sin avisos pendientes — ningún aviso tiene fecha de publicación
Datos de entrada utilizados
sourceosv
advisories0
affected_packages0
assessed_packages35
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Excluidos de la puntuación (sin datos o no aplicable): Sin avisos pendientes. Los pesos restantes se han renormalizado. Se cotejó el cierre de dependencias en tiempo de ejecución de pypi:aiconfigurator@0.10.0 —lo que arrastra la instalación del paquete publicado—: 35 paquetes. 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.

75Bueno · 0% del índice global
Cómo se puntúa
45/45Instrucciones para agentes — AGENTS.md
0/15Documentación legible por máquinas (llms.txt)
40/40Historial de commits legible — 100 de 100 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share1
agent_instruction_filesAGENTS.md
agent_instruction_max_bytes3663
Cómo se puntúa
12.6/18Arranque con un solo comando — Cargo.toml, aic-core/rust/aiconfigurator-core/Cargo.toml, aic-core/rust/tests/public-api/Cargo.toml (convención del toolchain, sin ejecutor de tareas)
22/22Pruebas automatizadas
11/11Configuración de lint / formato — eslint.config.js
11/11Verificación estática de tipos — aic-core/src/aiconfigurator_core/py.typed
10/10Entorno reproducible — Dockerfile, lockfile
10/10Práctica demostrada con agentes — 57 de los últimos 100 commits con autoría o crédito de agente
0/8Mantenimiento automatizado — no se observan actualizaciones automáticas de dependencias
1/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 1
Datos de entrada utilizados
has_nixno
has_tests
lockfilesCargo.lock, uv.lock
has_dockerfile
typed_languageno
bootstrap_files
has_devcontainerno
has_linter_config
typecheck_configsaic-core/src/aiconfigurator_core/py.typed
agent_commit_share0,57
toolchain_manifestsCargo.toml, aic-core/rust/aiconfigurator-core/Cargo.toml, aic-core/rust/tests/public-api/Cargo.toml
dependency_bot_commit_share0
Cómo se puntúa
27/45Código verificable por tipos — Python con configuración de verificación de tipos (aic-core/src/aiconfigurator_core/py.typed)
52.7/55Tamaños de archivo manejables — 23/549 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languagePython
largest_source_bytes146.909
source_files_sampled549
oversized_source_files23
Cómo se puntúa
0/40Esquema de API (OpenAPI/GraphQL/proto)
0/20Servidor MCP
40/40Ejemplos ejecutables — notebooks
Datos de entrada utilizados
example_dirsnotebooks
has_mcp_signalno
api_schema_files

Datos clave

374estrellas de GitHub
60contribuidores
744commits en los últimos 12 meses
0días desde el último push
12versiones publicadas
5factor bus
44issues abiertas
crates.io, PyPIecosistemas de paquetes

Advertencias de recopilación de datos

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • Could not fetch pypi package 'aiconfigurator-core' from its registry

Más detalle

Historial de estrellas y forks 0 ★ / 141 ⇿
0Estrellas
141Forks
11Versiones

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.

025507510012515013932025-082026-022026-07
Mayor 0Menor 9Parche 1
OpenSSF Scorecard 5.3 / 10
5.3agregado

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-26 05:19 UTC

10Binary-Artifactsno binaries found in the repo
5Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
10Code-Reviewall changesets reviewed
10Contributorsproject has 9 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
n/dPackagingpackaging workflow not detected
1Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 1
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
0Vulnerabilities28 existing vulnerabilities detected
Dependencias directas 22
RegistroPaqueteRestricción de versiónManifiesto
PyPIpackaging>=20.0aic-core/pyproject.toml
PyPInumpy~=1.26.4aic-core/pyproject.toml
PyPIpandas>=2.2.3aic-core/pyproject.toml
PyPIpyarrow>=15.0.0aic-core/pyproject.toml
PyPIpyyaml>=6.0aic-core/pyproject.toml
PyPIscipy>=1.13.1aic-core/pyproject.toml
PyPIaiconfigurator-core==0.11.0pyproject.toml
PyPIjinja2>=3.1.0pyproject.toml
PyPIpackaging>=20.0pyproject.toml
PyPImatplotlib>=3.9.4pyproject.toml
PyPInumpy~=1.26.4pyproject.toml
PyPIpandas>=2.2.3pyproject.toml
PyPIplotext>=5.3.2pyproject.toml
PyPIplotly>=6.0.1pyproject.toml
PyPIprettytable>=3.16.0pyproject.toml
PyPIpydantic>=2.5pyproject.toml
PyPIpyarrow>=15.0.0pyproject.toml
PyPIpyyaml>=6.0pyproject.toml
PyPItqdm>=4.0.0pyproject.toml
PyPIbokehpyproject.toml
PyPInvidia-ml-pypyproject.toml
PyPImunch>=4.0.0pyproject.toml
Todas las dependencias 183

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

RegistroPaqueteVersiónRelación
PyPIaiconfigurator-core0.11.0directa
PyPIbokeh3.9.0directa
PyPIjinja23.1.6directa
PyPImatplotlib3.10.8directa
PyPImunch4.0.0directa
PyPInumpydirecta
PyPInumpy1.26.4directa
PyPInvidia-ml-py13.595.45directa
PyPIpackagingdirecta
PyPIpackaging26.0directa
PyPIpandasdirecta
PyPIpandas2.3.3directa
PyPIpandas3.0.2directa
PyPIplotext5.3.2directa
PyPIplotly6.6.0directa
PyPIprettytable3.17.0directa
PyPIpyarrowdirecta
PyPIpyarrow24.0.0directa
PyPIpydantic2.12.5directa
PyPIpyyamldirecta
PyPIpyyaml6.0.3directa
PyPIscipydirecta
PyPIscipy1.15.3directa
PyPIscipy1.17.1directa
PyPItqdm4.67.3directa
crates.ioanyhow1.0.102indirecta
crates.iobitflags2.11.1indirecta
crates.iocfg-if1.0.4indirecta
crates.iocsv1.4.0indirecta
crates.iocsv-core0.1.13indirecta
crates.ioequivalent1.0.2indirecta
crates.ioerrno0.3.14indirecta
crates.iofastrand2.4.1indirecta
crates.iofoldhash0.1.5indirecta
crates.iogetrandom0.4.2indirecta
crates.iohashbrown0.15.5indirecta
crates.iohashbrown0.17.0indirecta
crates.ioheck0.5.0indirecta
crates.ioid-arena2.3.0indirecta
crates.ioindexmap2.14.0indirecta
crates.ioitoa1.0.18indirecta
crates.ioleb128fmt0.1.0indirecta
crates.iolibc0.2.186indirecta
crates.iolinux-raw-sys0.12.1indirecta
crates.iolog0.4.29indirecta
crates.iomemchr2.8.0indirecta
crates.ioonce_cell1.21.4indirecta
crates.ioprettyplease0.2.37indirecta
crates.ioproc-macro21.0.106indirecta
crates.ioquote1.0.45indirecta
crates.ior-efi6.0.0indirecta
crates.iorustix1.1.4indirecta
crates.ioryu1.0.23indirecta
crates.iosemver1.0.28indirecta
crates.ioserde1.0.228indirecta
crates.ioserde_core1.0.228indirecta
crates.ioserde_derive1.0.228indirecta
crates.ioserde_json1.0.149indirecta
crates.ioserde_yaml0.9.34+deprecatedindirecta
crates.iosyn2.0.117indirecta
crates.iotempfile3.27.0indirecta
crates.iothiserror2.0.18indirecta
crates.iothiserror-impl2.0.18indirecta
crates.iounicode-ident1.0.24indirecta
crates.iounicode-xid0.2.6indirecta
crates.iounsafe-libyaml0.2.11indirecta
crates.iowasip21.0.3+wasi-0.2.9indirecta
crates.iowasip30.4.0+wasi-0.3.0-rc-2026-01-06indirecta
crates.iowasm-encoder0.244.0indirecta
crates.iowasm-metadata0.244.0indirecta
crates.iowasmparser0.244.0indirecta
crates.iowindows-link0.2.1indirecta
crates.iowindows-sys0.61.2indirecta
crates.iowit-bindgen0.51.0indirecta
crates.iowit-bindgen0.57.1indirecta
crates.iowit-bindgen-core0.51.0indirecta
crates.iowit-bindgen-rust0.51.0indirecta
crates.iowit-bindgen-rust-macro0.51.0indirecta
crates.iowit-component0.244.0indirecta
crates.iowit-parser0.244.0indirecta
crates.iozmij1.0.21indirecta
PyPIaiconfigurator0.11.0indirecta
PyPIannotated-doc0.0.4indirecta
PyPIannotated-types0.7.0indirecta
PyPIanyio4.13.0indirecta
PyPIasttokens3.0.1indirecta
PyPIattrs26.1.0indirecta
PyPIbackports-asyncio-runner1.2.0indirecta
PyPIcertifi2026.2.25indirecta
PyPIcfgv3.5.0indirecta
PyPIchardet5.2.0indirecta
PyPIcharset-normalizer3.4.7indirecta
PyPIclick8.3.1indirecta
PyPIcolorama0.4.6indirecta
PyPIcontourpy1.3.2indirecta
PyPIcontourpy1.3.3indirecta
PyPIcoverage7.13.5indirecta
PyPIcycler0.12.1indirecta
PyPIdataproperty1.1.0indirecta
PyPIdateparser1.4.1indirecta
PyPIdecorator5.2.1indirecta
PyPIdistlib0.4.0indirecta
PyPIexceptiongroup1.3.1indirecta
PyPIexecnet2.1.2indirecta
PyPIexecuting2.2.1indirecta
PyPIfastapi0.135.3indirecta
PyPIfastjsonschema2.21.2indirecta
PyPIfilelock3.25.2indirecta
PyPIfonttools4.62.1indirecta
PyPIh110.16.0indirecta
PyPIhttmock1.4.0indirecta
PyPIidentify2.6.18indirecta
PyPIidna3.11indirecta
PyPIimport-ipynb0.2indirecta
PyPIiniconfig2.3.0indirecta
PyPIipython8.39.0indirecta
PyPIipython9.10.1indirecta
PyPIipython9.12.0indirecta
PyPIipython-pygments-lexers1.1.1indirecta
PyPIjedi0.19.2indirecta
PyPIjsonschema4.26.0indirecta
PyPIjsonschema-specifications2025.9.1indirecta
PyPIjupyter-core5.9.1indirecta
PyPIkiwisolver1.5.0indirecta
PyPImarkupsafe3.0.3indirecta
PyPImatplotlib-inline0.2.1indirecta
PyPImaturinindirecta
PyPImbstrdecoder1.1.4indirecta
PyPInarwhals2.18.1indirecta
PyPInbformat5.10.4indirecta
PyPInodeenv1.10.0indirecta
PyPIorjson3.11.8indirecta
PyPIparso0.8.6indirecta
PyPIpathvalidate3.3.1indirecta
PyPIpexpect4.9.0indirecta
PyPIpillow12.2.0indirecta
PyPIplatformdirs4.9.4indirecta
PyPIpluggy1.6.0indirecta
PyPIpre-commit4.3.0indirecta
PyPIprometheus-api-client0.6.0indirecta
PyPIprompt-toolkit3.0.52indirecta
PyPIptyprocess0.7.0indirecta
PyPIpure-eval0.2.3indirecta
PyPIpydantic-core2.41.5indirecta
PyPIpygments2.20.0indirecta
PyPIpyparsing3.3.2indirecta
PyPIpytablewriter1.2.1indirecta
PyPIpytest8.4.2indirecta
PyPIpytest-asyncio1.3.0indirecta
PyPIpytest-cov7.1.0indirecta
PyPIpytest-md-report0.7.0indirecta
PyPIpytest-mock3.15.1indirecta
PyPIpytest-split0.11.0indirecta
PyPIpytest-timeout2.4.0indirecta
PyPIpytest-xdist3.8.0indirecta
PyPIpython-dateutil2.9.0.post0indirecta
PyPIpython-discovery1.2.1indirecta
PyPIpytz2026.1.post1indirecta
PyPIreferencing0.37.0indirecta
PyPIregex2026.5.9indirecta
PyPIrequests2.34.2indirecta
PyPIrpds-py0.30.0indirecta
PyPIruff0.14.1indirecta
PyPIsetuptools82.0.1indirecta
PyPIsix1.17.0indirecta
PyPIstack-data0.6.3indirecta
PyPIstarlette0.52.1indirecta
PyPItabledata1.3.4indirecta
PyPItcolorpy0.1.7indirecta
PyPItomli2.4.1indirecta
PyPItornado6.5.5indirecta
PyPItraitlets5.14.3indirecta
PyPItypepy1.3.4indirecta
PyPItyping-extensions4.15.0indirecta
PyPItyping-inspection0.4.2indirecta
PyPItzdata2025.3indirecta
PyPItzlocal5.4.3indirecta
PyPIurllib32.7.0indirecta
PyPIuv0.11.3indirecta
PyPIuvicorn0.42.0indirecta
PyPIvirtualenv21.2.0indirecta
PyPIwcwidth0.6.0indirecta
PyPIxyzservices2026.3.0indirecta
Avisos de dependencias 0

Instalar pypi:aiconfigurator@0.10.0 arrastra 35 paquetes, directos y transitivos: 0 tienen avisos conocidos, de los cuales 0 son dependencias directas.

Ningún aviso conocido afecta a las dependencias evaluadas.

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": [],
      "is_fork": false,
      "size_kb": 343111,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "HTML": 24463,
        "Rust": 1394844,
        "Jinja": 131177,
        "Shell": 87156,
        "Python": 6836852,
        "Dockerfile": 7714,
        "JavaScript": 924,
        "Jupyter Notebook": 56820
      },
      "pushed_at": "2026-07-25T12:53:04Z",
      "created_at": "2025-07-22T04:28:47Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-25T13:56:30Z",
      "description": "Offline optimization of your disaggregated Dynamo graph",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "main",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": "Python",
      "significant_languages": [
        "Python",
        "Rust"
      ]
    },
    "owner": {
      "blog": "https://developer.nvidia.com/dynamo",
      "name": "Dynamo",
      "type": "Organization",
      "login": "ai-dynamo",
      "company": null,
      "location": "United States of America",
      "followers": 738,
      "avatar_url": "https://avatars.githubusercontent.com/u/201626793?v=4",
      "created_at": "2025-03-03T16:57:30Z",
      "is_verified": null,
      "public_repos": 15,
      "account_age_days": 509
    },
    "license": {
      "state": "standard",
      "spdx_id": "Apache-2.0",
      "raw_spdx": "Apache-2.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.10.0",
          "kind": "minor",
          "published_at": "2026-07-15T20:49:21Z"
        },
        {
          "tag": "v0.9.0",
          "kind": "minor",
          "published_at": "2026-05-27T14:09:47Z"
        },
        {
          "tag": "v0.8.0",
          "kind": "minor",
          "published_at": "2026-05-01T10:15:43Z"
        },
        {
          "tag": "v0.7.0",
          "kind": "minor",
          "published_at": "2026-03-12T20:13:44Z"
        },
        {
          "tag": "v0.6.0",
          "kind": "minor",
          "published_at": "2026-02-12T19:08:32Z"
        },
        {
          "tag": "v0.5.0.post0",
          "kind": "other",
          "published_at": "2026-01-21T21:14:18Z"
        },
        {
          "tag": "v0.5.0",
          "kind": "minor",
          "published_at": "2026-01-15T23:05:39Z"
        },
        {
          "tag": "v0.4.0",
          "kind": "minor",
          "published_at": "2025-11-24T17:01:01Z"
        },
        {
          "tag": "v0.3.0",
          "kind": "minor",
          "published_at": "2025-10-24T18:03:35Z"
        },
        {
          "tag": "v0.2.0",
          "kind": "minor",
          "published_at": "2025-09-18T19:20:47Z"
        },
        {
          "tag": "v0.1.1",
          "kind": "patch",
          "published_at": "2025-08-28T00:16:50Z"
        },
        {
          "tag": "v0.1.0",
          "kind": "minor",
          "published_at": "2025-08-12T19:10:18Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "b12b9b8c94819b8c6761104503a47c3b4c54f19a",
          "body": "Signed-off-by: hongkuanz <hongkuanz@nvidia.com>",
          "is_bot": false,
          "headline": "docs: update AI Simulate namespace (#1411)",
          "author_name": "Hongkuan Zhou",
          "author_login": "tedzhouhk",
          "committed_at": "2026-07-25T12:53:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aa84cf7ded3f1cf543a2737b0fd5a9e8f1180968",
          "body": "…anent kernel limits (#1359)\n\n* fix(collector): skip guards for hardware/version crash paths found during power collection\n\nEach guard is pinned to the exact (SM version, framework version) combination\nverified during B200/H200 power data collection. Guards named sm100 use\nget_sm_version() == 100; S\n[…]\noff-by: Kai Ma <kaim@nvidia.com>\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nSigned-off-by: Kai Ma <kaim@nvidia.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(collector): remove exception-smuggling skip guards; document perm…",
          "author_name": "Kai Ma",
          "author_login": "kaim-eng",
          "committed_at": "2026-07-25T11:49:53Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d317417b04c9cb9ed5fbb70a5df49493e743d826",
          "body": "…igration (#1358)\n\n* fix(collector): CPU tensor perf regression and TRT-LLM KV-cache API migration\n\nhelper.py: move count tensor to CPU during round-robin redistribution to avoid\nper-iteration GPU syncs when torch.set_default_device(cuda) is active in\ncollector workers. Replace Conv1d rank-sum with \n[…]\noff-by: Kai Ma <kaim@nvidia.com>\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nSigned-off-by: Kai Ma <kaim@nvidia.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(collector): CPU tensor perf regression and TRT-LLM KV-cache API m…",
          "author_name": "Kai Ma",
          "author_login": "kaim-eng",
          "committed_at": "2026-07-25T11:49:25Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "29dc7c33025411cf9d01842d3d7d75f5ff2f0020",
          "body": "…(#1377)\n\nmacOS defaults to spawn for multiprocessing, which requires pickling\nthe SupportMatrix object to child processes. The object contains\nunpicklable defaultdict(lambda) entries from the perf database loader,\nso every Phase 1 worker crashed and all combinations fell through to\nsequential Phase\n[…]\n globals via copy-on-write, matching the Linux\nbehavior the code was written for.\n\nSigned-off-by: Nathan Scott <nathans@redhat.com>\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(tools): use fork context for support matrix parallelism on macOS …",
          "author_name": "Nathan Scott",
          "author_login": "natoscott",
          "committed_at": "2026-07-25T07:16:14Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ad2552cc4d73398546fca8c635567ad9292fa828",
          "body": "* fix(sdk): model the eager ViT RoPE-apply as a standalone encoder op\n\nThe attention-internal RoPE term models an idealized fused kernel:\nin-place bf16, rotated dims only (~4h bytes/token). The eager ViT path\nthat sglang/vllm actually run materializes an fp32 round trip over the\nfull Q/K (~24h bytes\n[…]\nude Fable 5 <noreply@anthropic.com>\nSigned-off-by: wenpengw-nv <wenpengw@nvidia.com>\n\n---------\n\nSigned-off-by: wenpengw-nv <wenpengw@nvidia.com>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(sdk): model VL encoder data parallelism (#1393)",
          "author_name": "wenpengw-nv",
          "author_login": "wenpengw-nv",
          "committed_at": "2026-07-25T05:38:54Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3ea3b502c38f88df530c1e50bebbd97710389045",
          "body": "* fix: update family-first perf-data path references\n\nSigned-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>\n\n* fix: address perf-data path review feedback\n\nSigned-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>\n\n* docs: reject empty collector artifacts\n\nSigned-off-by: Jason \n[…]\n fix: gate MegaMoE provenance metadata on publication\n\nSigned-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>\n\n---------\n\nSigned-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>",
          "is_bot": false,
          "headline": "fix: align perf-data references with family-first layout (#1407)",
          "author_name": "Jason Zhou",
          "author_login": "jasonqinzhou",
          "committed_at": "2026-07-24T23:48:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "395fea7738f283670b1078fe3e85152f6ebd9c26",
          "body": "…che estimator (#1390)\n\nNaiveKVCacheEstimator.weight_bytes() counted all experts on every GPU,\nignoring both expert parallelism (EP) and MoE tensor parallelism\n(moe_tp). With EP=8 and 384 experts, per-GPU weight memory was inflated\n8x, leaving the KV-cache capacity estimate far too low. This matters\n[…]\n (divided by\nmoe_tp * moe_ep * pp), matching the native MoE operation's sharding.\n\nSigned-off-by: Nathan Scott <nathans@redhat.com>\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(sdk): divide MoE expert weights by moe_tp * moe_ep in naive KV-ca…",
          "author_name": "Nathan Scott",
          "author_login": "natoscott",
          "committed_at": "2026-07-24T16:58:30Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e39d1bbfcced7efaabd5a877ad5d727fead783ad",
          "body": "Signed-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>",
          "is_bot": false,
          "headline": "chore: remove unused web app (#1409)",
          "author_name": "Jason Zhou",
          "author_login": "jasonqinzhou",
          "committed_at": "2026-07-24T16:56:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "46a089ecee5db85c61f5e41bf449ddfad653bad6",
          "body": "…YBRID/EMPIRICAL port (#1355)\n\n* test(rust-core): add HYBRID/EMPIRICAL parity cases + open the rust routing gate\n\nTest-first guard for porting the util-space empirical layer (PR #1238,\nissue #1333 §4.6 option b) to the compiled engine:\n\n- EngineStepParityCase grows database_mode / transfer_policy /\n\n[…]\nlaude Fable 5 <noreply@anthropic.com>\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\n\n---------\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(rust-core): close all Python/Rust parity gaps — SILICON audit + H…",
          "author_name": "Tianhao Xu",
          "author_login": "tianhaox",
          "committed_at": "2026-07-24T16:36:32Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "521064805d4efd625429608ed0830b515683a387",
          "body": "* refactor(sdk): move MTP acceptance above aic-core\n\nSigned-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>\n\n* docs(cli): trim redundant MTP wording\n\nSigned-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>\n\n* fix(sdk): preserve MTP projection constraints\n\nSigned-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>\n\n---------\n\nSigned-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>",
          "is_bot": false,
          "headline": "refactor(sdk): move MTP acceptance above aic-core (#1405)",
          "author_name": "Jason Zhou",
          "author_login": "jasonqinzhou",
          "committed_at": "2026-07-24T02:02:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fca6536afb944ec7b0cba9bc34bd319eb0087041",
          "body": "* docs: clarify forward-pass API selection\n\nSigned-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>\n\n* fix: align Rust tests with family-first data\n\nSigned-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>\n\n* docs: correct forward-pass API guidance\n\nSigned-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>\n\n---------\n\nSigned-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>",
          "is_bot": false,
          "headline": "docs: clarify forward-pass API selection (#1406)",
          "author_name": "Jason Zhou",
          "author_login": "jasonqinzhou",
          "committed_at": "2026-07-23T21:19:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e418fe29d6f6dde61069236029cd7b0576e55c48",
          "body": "…#1378)\n\nAdd BF16/FP8/NVFP4 model configs for GLM-5.1 and BF16/FP8 configs for\nGLM-5.2 (NVFP4 already existed). Register all new model paths in\nDefaultHFModels and collector cases YAML. Support matrix CSVs generated\nfor all 10 GPU systems.\n\nRefs: #1376\n\nSigned-off-by: Nathan Scott <nathans@redhat.com>\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: add GLM-5.1 and GLM-5.2 model support (configs, cases, tests) (…",
          "author_name": "Nathan Scott",
          "author_login": "natoscott",
          "committed_at": "2026-07-23T21:01:36Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "8e2fd0d4721a9afa4cfdfa3080735af5ca8a3f2c",
          "body": "* feat: generate CODEOWNERS as code from a per-area taxonomy\n\nPorts ai-dynamo/dynamo's CODEOWNERS-as-code toolchain (dynamo#10715).\nOne source of truth (.github/codeowners/areas.yaml) maps paths to the\nexisting five teams; CI validates 100% coverage on every PR and blocks\ndrift between the source an\n[…]\ncy edit orphaning an untouched path\n  blocks (+ e2e demos)\n\nSigned-off-by: Dan Gil <dagil@nvidia.com>\n\n---------\n\nSigned-off-by: Dan Gil <dagil@nvidia.com>\nSigned-off-by: Daniel Gil <dagil@nvidia.com>",
          "is_bot": false,
          "headline": "feat: generate CODEOWNERS as code from a per-area taxonomy (#1347)",
          "author_name": "Dan Gil",
          "author_login": "dagil-nvidia",
          "committed_at": "2026-07-23T20:09:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "70658c25be88471448707d60fc3c068b179fbae1",
          "body": "* harden aic-core public API contracts\n\nSigned-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>\n\n* address aic-core API review feedback\n\nSigned-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>\n\n* address remaining aic-core review comments\n\nSigned-off-by: Jason Zhou (Engrg-Hardw\n[…]\nom>\n\n* docs(core): plan flat builder removal for 0.11\n\nSigned-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>\n\n---------\n\nSigned-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>",
          "is_bot": false,
          "headline": "feat: harden aic-core wheel and crate API contracts (#1375)",
          "author_name": "Jason Zhou",
          "author_login": "jasonqinzhou",
          "committed_at": "2026-07-23T18:32:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e18b24d3094c9683eded6c3260bd9d431fbfbe90",
          "body": "Signed-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>",
          "is_bot": false,
          "headline": "chore: bump version to 0.11.0 (#1404)",
          "author_name": "Jason Zhou",
          "author_login": "jasonqinzhou",
          "committed_at": "2026-07-23T17:57:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "88aea0b1d8acd47d9d02d59193e4d06e36de5642",
          "body": "…tAI) (#1395)\n\nReplace hardcoded _DSV4_NATIVE_MODEL_PATHS with _is_dsv4_fp4_expert_model()\nthat checks architecture + expert_dtype from the HF config. Third-party\nFP4-expert DSV4 requant artifacts (e.g. RedHatAI/DeepSeek-V4-Flash-NVFP4-FP8)\nnow get correct sglang MoE quant remapping on Hopper (w4a16\n[…]\nHopper quant\nmode passes DB validation (depends on nvfp4_wo alias from PR #1392).\n\nSigned-off-by: Nathan Scott <nathans@redhat.com>\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(sdk): support third-party DSV4 FP4-expert checkpoints (e.g. RedHa…",
          "author_name": "Nathan Scott",
          "author_login": "natoscott",
          "committed_at": "2026-07-23T17:38:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b90145f433aab09769b34a24278f7d3410ac0476",
          "body": "* docs: update Spica migration target to AI Simulate\n\nSigned-off-by: hongkuanz <hongkuanz@nvidia.com>\n\n* docs: clarify AI Simulate source installation\n\nSigned-off-by: hongkuanz <hongkuanz@nvidia.com>\n\n---------\n\nSigned-off-by: hongkuanz <hongkuanz@nvidia.com>",
          "is_bot": false,
          "headline": "docs: update Spica migration target to AI Simulate (#1401)",
          "author_name": "Hongkuan Zhou",
          "author_login": "tedzhouhk",
          "committed_at": "2026-07-23T17:15:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4f2d7b81e7cbf3a04f165a97059144132a319786",
          "body": "…policy (AIC-1503, AIC-1219) (#1374)\n\n* feat(sdk): design-§6 reuse ordering — declared donors, nearest-earlier fallback, comm exclusion, source diagnostics (AIC-1503)\n\nSigned-off-by: Yiming Liu <yimingl@nvidia.com>\n\n* fix(sdk): dedupe declared donors from fallback channel, pin legacy-layout comm exc\n[…]\n Claude Fable 5 <noreply@anthropic.com>\nSigned-off-by: Yiming Liu <yimingl@nvidia.com>\n\n---------\n\nSigned-off-by: Yiming Liu <yimingl@nvidia.com>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(sdk): declared-reuse ordering, strict provenance mode, evidence …",
          "author_name": "Yimingl_Nvidia",
          "author_login": "Arsene12358",
          "committed_at": "2026-07-23T17:12:02Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4fabb773643d961c9679e9af3544b74f95c87c8e",
          "body": "…n (AIC-1501) (#1371)\n\n* feat(sdk): dual-layout (family-first) perf-database discovery (AIC-1501)\n\nSigned-off-by: Yiming Liu <yimingl@nvidia.com>\n\n* test(sdk): real-tree fixture for get_database caching test (AIC-1501)\n\nSigned-off-by: Yiming Liu <yimingl@nvidia.com>\n\n* feat(sdk): route all per-op pe\n[…]\nYiming Liu <yimingl@nvidia.com>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nSigned-off-by: Yiming Liu <yimingl@nvidia.com>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(sdk): family-first perf-data layout with dual-read transitio…",
          "author_name": "Yimingl_Nvidia",
          "author_login": "Arsene12358",
          "committed_at": "2026-07-23T16:45:31Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b12a42aeac69b5720e0e50dc9008fdbcd80c0b1c",
          "body": "…s (AIC-1217, AIC-1500) (#1370)\n\n* docs(perf_database): Collector V3 op-centric design (AIC-1217)\n\nThe reviewed contract for op-centric collector management: op identity\n(registry op -> PerfFile table -> catalog family), family-first physical\ndata layout, manifest v2 per-op runtime pins, provenance \n[…]\n Claude Fable 5 <noreply@anthropic.com>\nSigned-off-by: Yiming Liu <yimingl@nvidia.com>\n\n---------\n\nSigned-off-by: Yiming Liu <yimingl@nvidia.com>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(collector): Collector V3 design + manifest v2 per-op runtime pin…",
          "author_name": "Yimingl_Nvidia",
          "author_login": "Arsene12358",
          "committed_at": "2026-07-23T05:52:04Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2829e0983b8698558aea9d3ab05693dc61761839",
          "body": "…1394)\n\nDocument two known environment caveats for local development:\n- pytest-timeout uses SIGALRM which triggers macOS crash dialogs;\n  pass -p no:timeout to disable\n- test_moe_dispatch.py requires torch which isn't in the dev venv\n\nSigned-off-by: Nathan Scott <nathans@redhat.com>\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: add macOS pytest-timeout and torch test caveats to AGENTS.md (#…",
          "author_name": "Nathan Scott",
          "author_login": "natoscott",
          "committed_at": "2026-07-22T17:21:50Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a907f3273306b35dc90a95daeb275943c5cf5ecd",
          "body": "…on data for Blackwell (#1399)\n\n* data(collector): add vLLM 0.24.0 native DSV4 w4a8_mxfp4_mxfp8 MoE data for 4 Blackwell systems\n\nCollected via aic-auto-collector pipelines 59094587/59094646 (child jobs,\n8/8 success, 0 errors) at PR head 818a6febb:\n- Flash (4096/2048/topk6/e256): 1134 rows per syste\n[…]\n 16 rows flip HYBRID_PASS -> PASS\n(Flash/Pro x b200_sxm/b300_sxm/gb200/gb300 x agg/disagg).\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\n\n---------\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>",
          "is_bot": false,
          "headline": "feat(data): vLLM 0.24.0 native DeepSeek-V4 w4a8_mxfp4_mxfp8 MoE silic…",
          "author_name": "Tianhao Xu",
          "author_login": "tianhaox",
          "committed_at": "2026-07-22T17:20:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1fdc973863780e345817004e272b44cd32360ee5",
          "body": "…ction on vLLM 0.24.0 (#1397)\n\n* feat(collector): enable native DeepSeek-V4 w4a8_mxfp4_mxfp8 MoE collection on vLLM 0.24.0\n\nThe native (expert_dtype=fp4) DeepSeek-V4 checkpoints had no consumable\nvLLM MoE path: #1344 disabled the label entirely (allowed_modes: [])\nbecause vLLM 0.24.0 serves the arti\n[…]\nthe required runtime feature is off.\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\n\n---------\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(collector): enable native DeepSeek-V4 w4a8_mxfp4_mxfp8 MoE colle…",
          "author_name": "Tianhao Xu",
          "author_login": "tianhaox",
          "committed_at": "2026-07-22T17:19:43Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "555957519731826789a7662694ac9138e3f7eaee",
          "body": "* refactor(sdk): explicit MTP control via nextn + nextn_accepted\n\nReplace the 5-element nextn_accept_rates chain-expectation with two explicit\nparameters and make speculative decoding strictly opt-in:\n\n- nextn (draft length, cost side: extra MTP-layer forward + the (nextn+1)\n  verify batch) now defa\n[…]\nlaude Fable 5 <noreply@anthropic.com>\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\n\n---------\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(sdk): explicit MTP control via nextn + nextn_accepted (#1383)",
          "author_name": "Tianhao Xu",
          "author_login": "tianhaox",
          "committed_at": "2026-07-22T17:05:05Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "41530cd5dea0097992d6ca97c47ea05475c318af",
          "body": "* refactor(spica): remove Spica from AIConfigurator\n\nSigned-off-by: hongkuanz <hongkuanz@nvidia.com>\n\n* test(cli): preserve default input validation coverage\n\nSigned-off-by: hongkuanz <hongkuanz@nvidia.com>\n\n* test(packaging): scan all wheel entries for Spica\n\nSigned-off-by: hongkuanz <hongkuanz@nvidia.com>\n\n* test(packaging): exercise wheel rejection path\n\nSigned-off-by: hongkuanz <hongkuanz@nvidia.com>\n\n---------\n\nSigned-off-by: hongkuanz <hongkuanz@nvidia.com>",
          "is_bot": false,
          "headline": "refactor(spica): remove Spica from AIConfigurator (#1389)",
          "author_name": "Hongkuan Zhou",
          "author_login": "tedzhouhk",
          "committed_at": "2026-07-21T22:06:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "111b093a2a516d6cb2eabac5ad601c95c14ebdbe",
          "body": "Signed-off-by: Nathan Scott <nathans@redhat.com>\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(webapp): use monospace font for debugging output textboxes (#1368)",
          "author_name": "Nathan Scott",
          "author_login": "natoscott",
          "committed_at": "2026-07-20T09:07:22Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2556e2013dee1a41d06912cd37562498df4079b9",
          "body": "… script (phase 1) (#1328)\n\n* Add generator fpm support\n\nSigned-off-by: etshen <etshen@nvidia.com>\n\n* update for multinode\n\nSigned-off-by: etshen <etshen@nvidia.com>\n\n* update for code rabbit\n\nSigned-off-by: etshen <etshen@nvidia.com>\n\n* update for prefill and decode\n\nSigned-off-by: etshen <etshen@nvidia.com>\n\n---------\n\nSigned-off-by: etshen <etshen@nvidia.com>",
          "is_bot": false,
          "headline": "feat: [generator] Add FPM deployment target with reusable Pod and run…",
          "author_name": "Ethan-ES",
          "author_login": "Ethan-ES",
          "committed_at": "2026-07-20T07:18:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2e794c9c0f2845f3a65c98d7e0188ea0c5732b86",
          "body": "Signed-off-by: Trey Dockendorf <tdockendorf@osc.edu>",
          "is_bot": false,
          "headline": "fix(image): Ensure Hugging Face SSL trusted by image (#1362)",
          "author_name": "treydock",
          "author_login": "treydock",
          "committed_at": "2026-07-20T02:48:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cae1aef7705af86e15597d6b0e97dc93112d18aa",
          "body": "…(#1373)\n\n* fix(webapp): move CSS to launch() for Gradio 6 and disable analytics\n\nGradio 6.0 moved the css parameter from Blocks() to launch().\nDisable Gradio telemetry by default -- AIC is a self-hosted tool and\nthe HuggingFace/Gradio analytics requests add startup noise without\nuser benefit. Uses \n[…]\n>\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>\n\n---------\n\nSigned-off-by: Nathan Scott <nathans@redhat.com>\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(webapp): move CSS to launch() for Gradio 6 and disable analytics …",
          "author_name": "Nathan Scott",
          "author_login": "natoscott",
          "committed_at": "2026-07-18T07:24:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "cf515cfc18ed04edfffa607c06d7b42cf043759d",
          "body": "* docs: add Web App section to README and CLI user guide\n\nDocument the Gradio webapp launch command, available flags, and tab\ndescriptions. The webapp was previously undocumented.\n\nSigned-off-by: Nathan Scott <nathans@redhat.com>\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>\n\n\n[…]\n>\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>\n\n---------\n\nSigned-off-by: Nathan Scott <nathans@redhat.com>\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: add Web App section to README and webapp user guide (#1367)",
          "author_name": "Nathan Scott",
          "author_login": "natoscott",
          "committed_at": "2026-07-18T07:24:09Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "92b4ce83c2489fccc6eb6f5271fb3b9bb93bc1e4",
          "body": "* fix: update support matrix\n\nFull local regeneration of the support matrix on main (2feebac5) using\nthe CI docker image (docker/Dockerfile --target test), 16 workers.\n10502 configurations across 5251 model/system/backend/version combos.\n\nRebased onto main after #1322 relocated the matrix to\naic-cor\n[…]\ny: Claude Fable 5 <noreply@anthropic.com>\nSigned-off-by: tianhaox <tianhaox@nvidia.com>\n\n---------\n\nSigned-off-by: tianhaox <tianhaox@nvidia.com>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: update support matrix [main] (#1366)",
          "author_name": "Tianhao Xu",
          "author_login": "tianhaox",
          "committed_at": "2026-07-17T03:10:37Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f4c58458ab1554c3e7678492e1bc9c7812c678e6",
          "body": "* fix(sdk): skip MoE workspace for dense Gemma 4\n\nReproduce with:\n\n  aiconfigurator cli default --model-path google/gemma-4-31B-it --total-gpus 2 --system h100_sxm --database-mode SOL --top-n 1\n\nBefore this fix, both agg and disagg reject every parallel configuration after memory accounting raises:\n\n[…]\nsent.\n\nSigned-off-by: Qinghui Zhuang <qzhuang@microsoft.com>\n\n* address comment\n\nSigned-off-by: Qinghui Zhuang <qzhuang@microsoft.com>\n\n---------\n\nSigned-off-by: Qinghui Zhuang <qzhuang@microsoft.com>",
          "is_bot": false,
          "headline": "fix(sdk): skip MoE workspace for dense Gemma 4 (#1338)",
          "author_name": "Qinghui Zhuang",
          "author_login": "zhuangqh",
          "committed_at": "2026-07-16T01:33:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "efd25e9402d073598db61f8e38381ec08eb2129b",
          "body": "…… (#1326)\n\n* docs(attributions): add Rust crate attributions + fix Python deps for 0.10.0\n\nThe 0.10.0 wheel now statically links the aiconfigurator_core Rust extension\n(_aiconfigurator_core.abi3.so), pulling 103 crates into the shipped artifact.\nNone were previously attributed. Adds a Rust section \n[…]\naude Opus 4.8 (1M context) <noreply@anthropic.com>\n(cherry picked from commit 12f9a97d736c9f491c6f7f4e558dae44de7b9883)\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(attributions): add Rust crate attributions + fix Python deps for…",
          "author_name": "Nate Mailhot",
          "author_login": "nv-nmailhot",
          "committed_at": "2026-07-15T20:35:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "989dd6e9cbedcbd26d353da984af451b6b64fd3f",
          "body": "…ch op runs on per platform/version/precision (#1345)\n\n* feat(tools): derive op-backend facts record from the perf database\n\nAdd tools/perf_database/backend_facts.py: for every (op table, framework,\nversion, system, fact-axis slice) in the data tree, record which kernel\nbackend(s) the rows were coll\n[…]\nff-by: Yiming Liu <yimingl@nvidia.com>\n\n---------\n\nSigned-off-by: Yiming Liu <yimingl@nvidia.com>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>\nCo-authored-by: Yiming Liu <yimingl@nvidia.com>",
          "is_bot": false,
          "headline": "feat(tools): op-backend facts — a truthful record of which backend ea…",
          "author_name": "Tianhao Xu",
          "author_login": "tianhaox",
          "committed_at": "2026-07-15T13:29:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0b077da5e017cb8ceac1ad14e91eb6e26c40207a",
          "body": "…322)\n\n* build: restore standalone aiconfigurator-core wheel\n\nSigned-off-by: jasonqinzhou <jasonqinzhou@users.noreply.github.com>\n\n* build: expose SDK under core namespace\n\nSigned-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>\n\n* build: restructure packages for repository split\n\nSigned-\n[…]\nigned-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>\nSigned-off-by: Jason Zhou <jasonqinzhou@users.noreply.github.com>\nCo-authored-by: jasonqinzhou <jasonqinzhou@users.noreply.github.com>",
          "is_bot": false,
          "headline": "build: restructure into split-ready core and application packages (#1…",
          "author_name": "Jason Zhou",
          "author_login": "jasonqinzhou",
          "committed_at": "2026-07-15T00:05:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2feebac532a84725c9f468861f16dac3e4ed3097",
          "body": "…d perf regression gate (#1351)\n\n* perf(rust-core): make SiteIndex::resolve O(n) per query\n\nThe GEMM scattered-sites resolver sorted every collected site by distance on\neach query -- recomputing the distance (a sqrt over the site axes) inside the\nsort comparator -- just to keep the nn_sites nearest.\n[…]\no\n  divides out most machine-speed variance but can still shift across\n  architectures.\n\nSigned-off-by: Simone Chen <maxmoe0105@gmail.com>\n\n---------\n\nSigned-off-by: Simone Chen <maxmoe0105@gmail.com>",
          "is_bot": false,
          "headline": "fix(rust-core): restore engine-step speedup (SiteIndex::resolve) + ad…",
          "author_name": "Simone Chen",
          "author_login": "simone-chen",
          "committed_at": "2026-07-13T23:18:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "62633bba3993a177049652608ee44f96a4d76dc2",
          "body": "* fix(data): replace mislabeled vLLM v0.19 FP16 AllReduce data with real BF16\n\nSigned-off-by: wenpengw-nv <wenpengw@nvidia.com>\n\n* update h100_sxm vllm0.19.0 ar data\n\nSigned-off-by: wenpengw-nv <wenpengw@nvidia.com>\n\n---------\n\nSigned-off-by: wenpengw-nv <wenpengw@nvidia.com>",
          "is_bot": false,
          "headline": "chore: replace mislabeled vLLM v0.19 FP16 AR data with real bf16 (#1339)",
          "author_name": "wenpengw-nv",
          "author_login": "wenpengw-nv",
          "committed_at": "2026-07-13T16:21:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e23be5a79438356de7d8ff9cd4bec38ccb1f4670",
          "body": "… 8 systems (#1342)\n\n* feat(collector): upgrade SGLang collector to 0.5.14\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\n\n* fix(sglang): align MLA module collection with 0.5.14\n\nUse the pinned runtime's cross-layer top-k reuse contract, normalize GLM-5.2 cached layer types, and document validated\n[…]\nox@nvidia.com>\n\n---------\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\nSigned-off-by: Tianhao Xu <49143331+tianhaox@users.noreply.github.com>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(collector): upgrade the SGLang collector to 0.5.14 with data for…",
          "author_name": "Tianhao Xu",
          "author_login": "tianhaox",
          "committed_at": "2026-07-13T13:39:18Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c4a574a65813d651d7e667fce0bad09cb2c461c7",
          "body": "…fic rules (#1337)\n\n* feat(sdk): data-driven FMHA fp8->bf16 fallback at task resolve time\n\nCheckpoint-inferred fp8 FMHA now falls back to bfloat16 when the role's\nperf DB carries no fp8 slice in its fmha-keyed context-attention table,\nwith a warning, instead of failing validate later. Unknown/new mo\n[…]\nlaude Fable 5 <noreply@anthropic.com>\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\n\n---------\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(sdk): data-driven FMHA quant resolution — retire model-speci…",
          "author_name": "Tianhao Xu",
          "author_login": "tianhaox",
          "committed_at": "2026-07-13T11:04:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d5bad971c95729437ff611e559ed2fc1db6d4318",
          "body": "…em data (#1344)\n\n* feat(collector): upgrade vLLM to 0.24.0\n\nSigned-off-by: Tianhao Xu <49143331+tianhaox@users.noreply.github.com>\n\n* fix(collector): prune invalid vllm gdn grid\n\nSigned-off-by: Tianhao Xu <49143331+tianhaox@users.noreply.github.com>\n\n* fix(collector): isolate legacy vllm xpu utilit\n[…]\nhao Xu <49143331+tianhaox@users.noreply.github.com>\nSigned-off-by: tianhaox <tianhaox@nvidia.com>\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(collector): upgrade the vLLM collector to 0.24.0 with eight-syst…",
          "author_name": "Tianhao Xu",
          "author_login": "tianhaox",
          "committed_at": "2026-07-13T11:02:50Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d901a281173f8ef8c27ca8294d9add6ae0ba2f37",
          "body": "…b to nightly (#1336)\n\nPR 2 of 2 for the prediction-regression-gate rollout\n(docs/design/prediction_regression_gate_design.md §5). Trigger-only:\n\n- prediction-regression-gate.yml: add pull_request trigger; the\n  \"AIC Prediction Regression Gate\" report job becomes the PR check\n- accuracy-regression-t\n[…]\ndead)\n\nReverting this commit restores the dispatch-only status quo without\ntouching the harness.\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "ci: enable prediction regression gate as PR check, demote accuracy jo…",
          "author_name": "Tianhao Xu",
          "author_login": "tianhaox",
          "committed_at": "2026-07-10T14:46:05Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "52d71f9370e66cc71ba86a36b158522255dd0a20",
          "body": "* design(sdk): per-op config schema for the perf-table interpolation engine v2\n\nClean-room redesign of the SILICON perf-table interp/extrap layer, off main.\nThis commit is the DECLARATIVE INTERFACE only (no resolver yet) so the shape\ncan be reviewed before the engine lands.\n\nGoals: P0-1 robustly han\n[…]\n27; python suite 1289.\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\n\n---------\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(sdk): perf-table interpolation engine v2 (perf_interp) (#1303)",
          "author_name": "Tianhao Xu",
          "author_login": "tianhaox",
          "committed_at": "2026-07-09T13:12:44Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "68fc4519e15324816c519de97ea28bcc67744472",
          "body": "…on accuracy anchors (dispatch-only) (#1289)\n\n* feat(test): old-vs-new run_static regression gate (V2), dispatch-only\n\nReplace the PR-time accuracy job's workload with a two-tier old-vs-new\ncomparison: collect a tier-1 run_static snapshot + tier-2 scheduling\nsnapshot on the PR base and on the PR hea\n[…]\nlaude Fable 5 <noreply@anthropic.com>\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\n\n---------\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(test): prediction regression gate — old-vs-new snapshots + silic…",
          "author_name": "Tianhao Xu",
          "author_login": "tianhaox",
          "committed_at": "2026-07-09T11:26:19Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7a4ca38433c5109f250cd1eddb34cdf76ecd1ac2",
          "body": "…-predict failure handling (#1302)\n\n* refactor(collector): replace exception rule engine with observe-don't-predict failure handling\n\nCollector v2's declaration surface had grown a 1400-line sm_exceptions rule\nengine (15 comparison operators, computed conditions, positional field\ncontracts) that tri\n[…]\nlaude Fable 5 <noreply@anthropic.com>\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\n\n---------\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(collector): replace exception rule engine with observe-don't…",
          "author_name": "Tianhao Xu",
          "author_login": "tianhaox",
          "committed_at": "2026-07-09T11:26:00Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a8469e4dd3447eea1419be82130798ddd869c1a8",
          "body": "* update latest xpu op collection\n\nSigned-off-by: Spycsh <sihan.chen@intel.com>\n\n* remove 0.23.0 data for now\n\nSigned-off-by: Spycsh <sihan.chen@intel.com>\n\n* fix lint\n\nSigned-off-by: Spycsh <sihan.chen@intel.com>\n\n---------\n\nSigned-off-by: Spycsh <sihan.chen@intel.com>",
          "is_bot": false,
          "headline": "fix: resolve xpu collection issues for latest vllm (#1334)",
          "author_name": "Sihan Chen",
          "author_login": "Spycsh",
          "committed_at": "2026-07-09T10:41:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "32d9db954276e62f7588aafd9081c0926f18224c",
          "body": "…p payloads (#1324)\n\n* fix(rust-core): validate engine-spec schema version before decoding op payloads\n\nEngineSpec::from_bincode decoded the whole bincode payload (including the\npositional, variable-layout op lists) before it checked schema_version. bincode\nis not self-describing, so a producer/cons\n[…]\n<noreply@anthropic.com>\nSigned-off-by: Simone Chen <simonec@nvidia.com>\n\n---------\n\nSigned-off-by: Simone Chen <simonec@nvidia.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(rust-core): validate engine-spec schema version before decoding o…",
          "author_name": "Simone Chen",
          "author_login": "simone-chen",
          "committed_at": "2026-07-08T23:26:39Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d01ce3d5d4fa172ff96b4ab4b53263e2d3039ff0",
          "body": "* fix: build the aiconfigurator wheel as manylinux_2_28\n\nThe wheel carries a native Rust/PyO3 (abi3) extension but was built on\nubuntu:jammy and tagged linux_x86_64 -- a bare platform tag that PyPI\nrejects and that effectively pins the wheel to the build host's glibc.\nBuild it as a portable manylinu\n[…]\ny MATURIN_PEP517_ARGS\noverrides the PEP517 compatibility default, why pin the interpreter).\n\nSigned-off-by: Anant Sharma <anants@nvidia.com>\n\n---------\n\nSigned-off-by: Anant Sharma <anants@nvidia.com>",
          "is_bot": false,
          "headline": "fix: build the aiconfigurator wheel as manylinux_2_28 (#1330)",
          "author_name": "Anant Sharma",
          "author_login": "nv-anants",
          "committed_at": "2026-07-08T22:35:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2e33a9ef61afc35e21fd4e042fef040d1fad75e8",
          "body": "Signed-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>",
          "is_bot": false,
          "headline": "build: remove aiconfigurator-core compatibility wheel (#1329)",
          "author_name": "Jason Zhou",
          "author_login": "jasonqinzhou",
          "committed_at": "2026-07-08T22:13:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0828d6b7e4a7880079443b1c6f9c148d85bdbf54",
          "body": "…f DB refactors; make Spica tests non-blocking (#1313)\n\n* feat(rust-core): context-parallelism support for engine-step (Phase 1)\n\nThe Python SDK models context parallelism (CP) as a first-class prefill\ndimension, but the Rust engine-step path dropped it: the spec serializers\nnever emitted the per-op\n[…]\n<noreply@anthropic.com>\nSigned-off-by: Simone Chen <simonec@nvidia.com>\n\n---------\n\nSigned-off-by: Simone Chen <simonec@nvidia.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(rust-core): add context-parallelism and catch up with latest per…",
          "author_name": "Simone Chen",
          "author_login": "simone-chen",
          "committed_at": "2026-07-06T21:43:30Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "251eef74073e7dd912d913677801a0b66e12ddb9",
          "body": "The Task->generator bridge set NodeConfig.system_name from the shared\ntop-level system_name, which is empty for disaggregated Task v2 requests\n(the selected system lives in the phase-specific prefill/decode fields).\nNodeConfig.system_name then came out blank and hardware facts (node\nselectors, NCCL/\n[…]\nl/decode systems\n(heterogeneous placement is out of scope). Adds regression tests.\n\nSigned-off-by: Simone Chen <simonec@nvidia.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(generator): preserve disagg system name in Task bridge (#1294)",
          "author_name": "Simone Chen",
          "author_login": "simone-chen",
          "committed_at": "2026-07-06T21:12:43Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "81783f09bc89ce278cb707825a484c71d91834bb",
          "body": "The Task->generator bridge built BenchConfig only from explicit generator\noverrides and never read the Task's image_height / image_width /\nnum_images_per_request, so a Qwen3-VL image workload fell back to the\nschema default image_batch_size=0 and the benchmark artifacts ran\ntext-only. Seed BenchConf\n[…]\ndisable-encoder, used with 448x448 by the web UI) survives. Adds\nregression tests.\n\nSigned-off-by: Simone Chen <simonec@nvidia.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(generator): carry multimodal image workload into BenchConfig (#1295)",
          "author_name": "Simone Chen",
          "author_login": "simone-chen",
          "committed_at": "2026-07-06T21:12:24Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8befd8fc932df68307c7fcd1a96111b0177a88c0",
          "body": "… (#1311)\n\n* docs: document Linux x86-64-only support for the aiconfigurator wheel\n\nSigned-off-by: Simone Chen <simonec@nvidia.com>\n\n* Update README.md\n\nCo-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>\nSigned-off-by: Simone Chen <maxmoe0105@gmail.com>\n\n---------\n\nSigned-off-by: Simone Chen <simonec@nvidia.com>\nSigned-off-by: Simone Chen <maxmoe0105@gmail.com>\nCo-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "docs: document Linux x86-64-only support for the aiconfigurator wheel…",
          "author_name": "Simone Chen",
          "author_login": "simone-chen",
          "committed_at": "2026-07-06T21:10:43Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "358ce6acedc3b896c7f49343e4dedde21f8ae5a7",
          "body": "…(#1315)\n\n`aiconfigurator cli default --thorough-config <file>` dumped a full\nPython/Pydantic traceback when the config file was missing, contained\nmalformed YAML, or failed schema validation (e.g. an omitted required\nfield). These are expected, actionable user errors, but the Spica\nthorough adapter\n[…]\nmirrors Spica's real\n`from_yaml` so the tests exercise the actual exception types.\n\nSigned-off-by: Simone Chen <simonec@nvidia.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(cli): report invalid Spica --thorough-config without a traceback …",
          "author_name": "Simone Chen",
          "author_login": "simone-chen",
          "committed_at": "2026-07-06T18:38:34Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4189fae687994a50e321545031b1093fb4d3b55b",
          "body": "…s (#1282)\n\nThree CLI paths dumped a full Python traceback for expected, actionable\nuser errors: estimate mode (missing perf data), the Task execution loop\nin default/exp (unsupported quant/compatibility), and Task construction\nin exp (e.g. MegaMoE requires Blackwell). PR #1273 only converted\nestima\n[…]\now also\nrender concise (better UX); the DEBUG traceback covers the code-side case.\n\nSigned-off-by: Simone Chen <simonec@nvidia.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(cli): report expected data/compatibility errors without traceback…",
          "author_name": "Simone Chen",
          "author_login": "simone-chen",
          "committed_at": "2026-07-06T04:47:10Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5b3c7cf2bc56898fde5c0b4824ae335f35d0c8ec",
          "body": "* fix(generator): emit --served-model-name for vLLM workers\n\nThe vLLM k8s worker builder and run.sh launcher relied on the cli_args\ntemplates to emit --served-model-name, but none of them do. As a result\nthe deployed model advertised only the HF model id and requests using the\nconfigured ServiceConf\n[…]\n<noreply@anthropic.com>\nSigned-off-by: Simone Chen <simonec@nvidia.com>\n\n---------\n\nSigned-off-by: Simone Chen <simonec@nvidia.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(generator): emit --served-model-name for vLLM workers (#1293)",
          "author_name": "Simone Chen",
          "author_login": "simone-chen",
          "committed_at": "2026-07-05T05:42:42Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "638ed65550c8b261e339bca97d4f13c3bf2ade47",
          "body": "cli default / cli sweep convert Task results through the module bridge,\nwhich explicitly forwarded ServiceConfig/ModelConfig/DynConfig/K8sConfig/\nSflowConfig but never LlmdConfig. --generator-set LlmdConfig.* values\n(e.g. vllm_image, kustomize_base_path) were parsed but silently dropped,\nso llm-d-ku\n[…]\nd params, matching the\nnaive generator's behavior.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nSigned-off-by: Simone Chen <simonec@nvidia.com>\n\nnvbugs: https://nvbugs/6407038",
          "is_bot": false,
          "headline": "fix(generator): preserve LlmdConfig overrides in Task bridge (#1297)",
          "author_name": "Simone Chen",
          "author_login": "simone-chen",
          "committed_at": "2026-07-05T05:38:11Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "658729199c428b327aac5c90f2efdfe83f2514af",
          "body": "The naive generator passed only num_gpus_per_node into\ncollect_generator_params, which rebuilds NodeConfig with just that field.\nNodeConfig.system_name (and any explicit NodeConfig override) was\ntherefore dropped, so the vLLM run.sh always emitted CUDA_VISIBLE_DEVICES\neven for B60, which needs ONEAP\n[…]\nault system and NodeConfig overrides both survive.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nSigned-off-by: Simone Chen <simonec@nvidia.com>\n\nnvbugs: https://nvbugs/6406894",
          "is_bot": false,
          "headline": "fix(generator): keep system identity in naive NodeConfig (#1296)",
          "author_name": "Simone Chen",
          "author_login": "simone-chen",
          "committed_at": "2026-07-05T05:38:10Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "08638cba1ef7d66744f8fad86893f8803e70b094",
          "body": "The typed DGD serializer used yaml.safe_dump, which emits the string\n\"y\" as the bare scalar value: y. Kubernetes converts the manifest to\nJSON with a YAML 1.1 parser that reads bare y/n as booleans, so the DGD\nadmission webhook rejected the deployment because EnvVar.value must be a\nstring (hit via t\n[…]\nit, so every emitted scalar\nkeeps its string type.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nSigned-off-by: Simone Chen <simonec@nvidia.com>\n\nnvbugs: https://nvbugs/6406370",
          "is_bot": false,
          "headline": "fix(generator): quote boolean-like env values in DGD YAML (#1292)",
          "author_name": "Simone Chen",
          "author_login": "simone-chen",
          "committed_at": "2026-07-05T05:38:05Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7214e364f52bf8bb81d94e3d01f3258c6bfbb63a",
          "body": "Signed-off-by: Spycsh <sihan.chen@intel.com>",
          "is_bot": false,
          "headline": "fix b60 intra node bandwidth and p2p latency (#1301)",
          "author_name": "Sihan Chen",
          "author_login": "Spycsh",
          "committed_at": "2026-07-05T01:34:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9ce84ebbe3a0d7f785c91d055bdbdf4fdaabcbf1",
          "body": "* build: bundle core functionality in AIC wheel\n\nSigned-off-by: jasonqinzhou <jasonqinzhou@users.noreply.github.com>\n\n* build: fold Spica into the root project\n\nSigned-off-by: jasonqinzhou <jasonqinzhou@users.noreply.github.com>\n\n---------\n\nSigned-off-by: jasonqinzhou <jasonqinzhou@users.noreply.github.com>\nCo-authored-by: jasonqinzhou <jasonqinzhou@users.noreply.github.com>",
          "is_bot": false,
          "headline": "build: bundle core functionality in AIC wheel (#1283)",
          "author_name": "Jason Zhou",
          "author_login": "jasonqinzhou",
          "committed_at": "2026-07-03T01:28:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dfc80b11f00bfbe5a8cd1b0f9d288170b2872218",
          "body": "* docs: link AIC developer universe\n\nSigned-off-by: jasonqinzhou <jasonqinzhou@users.noreply.github.com>\n\n* docs: add AIC developer universe page\n\nSigned-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>\n\n---------\n\nSigned-off-by: jasonqinzhou <jasonqinzhou@users.noreply.github.com>\nSigned-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>\nCo-authored-by: jasonqinzhou <jasonqinzhou@users.noreply.github.com>",
          "is_bot": false,
          "headline": "docs: add AIC developer universe page (#1278)",
          "author_name": "Jason Zhou",
          "author_login": "jasonqinzhou",
          "committed_at": "2026-07-02T23:52:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0b2de845079e38d8cde9bc4cb3841f197b358611",
          "body": "Signed-off-by: hongkuanz <hongkuanz@nvidia.com>",
          "is_bot": false,
          "headline": "docs(spica): document structured parallel projection (#1299)",
          "author_name": "Hongkuan Zhou",
          "author_login": "tedzhouhk",
          "committed_at": "2026-07-02T21:54:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8e123ef8e582302d414eee9370a4d5b5046aca73",
          "body": "…#1281)\n\nThe single-point cli estimate / AFD path auto-inferred fp8 FMHA for\nDeepSeek-V3 (and Kimi-K2.5) context MLA and then crashed with an\nunhandled PerfDataNotAvailableError, because the SILICON database has no\nfp8 FMHA context-MLA slice. The sweep path (task_v2) already downgrades\nimplicitly-in\n[…]\nives a concise error. Unit tests\ncover the context/gen x inferred/explicit matrix.\n\nSigned-off-by: Simone Chen <simonec@nvidia.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(cli): apply DeepSeek-V3/Kimi context FMHA rule in estimate path (…",
          "author_name": "Simone Chen",
          "author_login": "simone-chen",
          "committed_at": "2026-07-02T01:54:35Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ffbe240614742568e7b454bd2004a19147df087b",
          "body": "_sweep_one_parallel_agg built each per-batch RuntimeConfig field-by-field\nand copied only text-workload fields, so image_height, image_width,\nnum_images_per_request, and num_image_tokens reverted to dataclass\ndefaults. base_backend then resolved zero visual tokens and skipped\nencoder modeling, makin\n[…]\npoint config keeps all multimodal\nfields, including the num_image_tokens override.\n\nSigned-off-by: Simone Chen <simonec@nvidia.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(sdk): preserve multimodal fields in agg sweep point config (#1280)",
          "author_name": "Simone Chen",
          "author_login": "simone-chen",
          "committed_at": "2026-07-02T01:54:22Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3386cfcfc3ec3f8c29bac19fd3a101efbf9a7bd6",
          "body": "PR #1230 replaced --debug with --log-level but promised backward\ncompatibility (precedence --log-level > AICONFIGURATOR_LOG_LEVEL >\n--debug > INFO). The implementation dropped --debug entirely, so\nargparse rejected it with exit code 2 across all CLI modes.\n\nRestore --debug as a store_true deprecated\n[…]\nce. Update docs and add regression coverage for parsing and\nresolution precedence.\n\nSigned-off-by: Simone Chen <simonec@nvidia.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(cli): restore legacy --debug flag as deprecated alias (#1279)",
          "author_name": "Simone Chen",
          "author_login": "simone-chen",
          "committed_at": "2026-07-02T01:53:42Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f4d1bcc7590496d508843c1c37132e2d544fd003",
          "body": "* feat: GLM-5.2-NVFP4 support to AIC (collector + modeling)\n\nSigned-off-by: Kimi Zhao <kimiz@nvidia.com>\n\n* fix: collect only GLM-5.2-NVFP4 for shared sparse/MoE ops when both GLM-5/5.2 are present (with GLM-5 max_position ceiling on sparse shapes) and make generation skip-indexer queries read their\n[…]\nskip-indexer SOL/CP/collect correctness, backend-safe amortization, sparse dedup/ceiling env-filter\n\nSigned-off-by: Kimi Zhao <kimiz@nvidia.com>\n\n---------\n\nSigned-off-by: Kimi Zhao <kimiz@nvidia.com>",
          "is_bot": false,
          "headline": "feat: GLM-5.2-NVFP4 support to AIC (collector + modeling) (#1263)",
          "author_name": "Mr Knight",
          "author_login": "YijiaZhao",
          "committed_at": "2026-07-01T11:50:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ad0e3e5e31ee3b8ebcc69617f51b1bd5cfdd659a",
          "body": "* feat(spica): add structured parallel search\n\nSigned-off-by: hongkuanz <hongkuanz@nvidia.com>\n\n* docs(spica): remove internal search plan\n\nSigned-off-by: hongkuanz <hongkuanz@nvidia.com>\n\n* fix(spica): prune inactive component knobs\n\nSigned-off-by: hongkuanz <hongkuanz@nvidia.com>\n\n* feat(spica): a\n[…]\n\nSigned-off-by: hongkuanz <hongkuanz@nvidia.com>\n\n* test(spica): allow projected cache hits\n\nSigned-off-by: hongkuanz <hongkuanz@nvidia.com>\n\n---------\n\nSigned-off-by: hongkuanz <hongkuanz@nvidia.com>",
          "is_bot": false,
          "headline": "feat(spica): add structured parallel search (#1262)",
          "author_name": "Hongkuan Zhou",
          "author_login": "tedzhouhk",
          "committed_at": "2026-06-30T21:33:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d5a49a9cdfa3b35169369304b9438054feea2acc",
          "body": "…rs (#1273)\n\nInvalid AFD sizing (e.g. f_moe_ep_size not dividing f_tp_size) raises a\nValueError deep in the SDK validation path. estimate mode called\n_run_estimate_mode directly, so the actionable message surfaced to the\nuser as a full Python traceback and an unhandled exception exit.\n\nWrap _run_est\n[…]\ntion, so the user sees a\nclean \"Error: ...\" line instead of internal stack frames.\n\nSigned-off-by: Simone Chen <simonec@nvidia.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(cli): convert estimate-mode validation errors to concise CLI erro…",
          "author_name": "Simone Chen",
          "author_login": "simone-chen",
          "committed_at": "2026-06-30T20:52:27Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9ab3535732fa4770b0c990bfce7cd6e81387b380",
          "body": "Signed-off-by: Jason Zhou <jasonzho@nvidia.com>",
          "is_bot": false,
          "headline": "fix(sdk): respect effective perf-data exception chain (#1270)",
          "author_name": "Jason Zhou",
          "author_login": "jasonqinzhou",
          "committed_at": "2026-06-30T20:01:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "56818186608b873838a08732265967e4a14783e1",
          "body": "The release/0.10.0 branch still declared version 0.9.0 in pyproject.toml,\nrust/aiconfigurator-core/Cargo.toml, src/aiconfigurator-core/pyproject.toml,\nand the aiconfigurator-core dependency pin. This bumps all four so the branch\nproduces correctly-versioned 0.10.0 artifacts (python wheels + aiconfigurator-core\ncrate/extension).\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: bump version 0.9.0 -> 0.10.0 on release/0.10.0 (#1271)",
          "author_name": "Nate Mailhot",
          "author_login": "nv-nmailhot",
          "committed_at": "2026-06-30T18:42:20Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b706a37d5565b4dcf4679762335bcd22359f2dee",
          "body": "Classify expected sweep no-result outcomes without traceback noise, distinguish model OOM, KV-cache capacity, and SLA failures, and preserve tracebacks for genuine errors in the new no-result exception chain.",
          "is_bot": false,
          "headline": "fix: report expected \"no results\" sweep outcomes cleanly (#1239)",
          "author_name": "Tianhao Xu",
          "author_login": "tianhaox",
          "committed_at": "2026-06-30T16:54:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a3a070349c04795ab5ff375e269f0ede6664575f",
          "body": "* feat(cli): run Spica sweeper for trace defaults\n\nSigned-off-by: Jason Zhou <jasonzho@nvidia.com>\n\n* docs(cli): clarify Mooncake trace format\n\nSigned-off-by: Jason Zhou <jasonzho@nvidia.com>\n\n* feat(cli): align Spica trace output with default summary\n\nSigned-off-by: Jason Zhou <jasonzho@nvidia.com>\n[…]\nx(spica): make KVBM replay deterministic\n\nSigned-off-by: Jason Zhou <jasonzho@nvidia.com>\n\n---------\n\nSigned-off-by: Jason Zhou <jasonzho@nvidia.com>\nCo-authored-by: Simone Chen <maxmoe0105@gmail.com>",
          "is_bot": false,
          "headline": "feat(cli): add Spica thorough sweeps to default mode (#1244)",
          "author_name": "Jason Zhou",
          "author_login": "jasonqinzhou",
          "committed_at": "2026-06-30T16:43:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "036ab41bf745b41b8a14d0f71e899be5330aec1c",
          "body": "…outer dict (#1250)\n\n* fix(dsa): extrapolate per-backend sub-dicts instead of backend-keyed outer dict\n\nContextDSAModule and GenerationDSAModule _extrapolate methods were\npassing the {dsa_backend: {...}} arch_dict directly to\ninterpolation.extrapolate_data_grid, treating backend names as grid\naxis k\n[…]\nly (backend names not consumed as\ngrid x-axis). Verified to fail on the pre-fix code.\n\nSigned-off-by: magitoneu <magi.toneu@midokura.com>\n\n---------\n\nSigned-off-by: magitoneu <magi.toneu@midokura.com>",
          "is_bot": false,
          "headline": "fix(dsa): extrapolate per-backend sub-dicts instead of backend-keyed …",
          "author_name": "Magí Toneu",
          "author_login": "Magitoneu",
          "committed_at": "2026-06-30T14:29:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2cd0c07f2dd8ef0efa7e3ba4cfafe04d7b087413",
          "body": "…timate (#1228)\n\nThe Dynamo Mocker KV-cache capacity path (`sdk/memory.py`) sizes non-KV memory\nvia `BaseBackend._get_memory_usage`, which unconditionally scaled activation by\n`(nextn + 1)` for speculative decoding. On that path `num_tokens` is the engine's\n`max_num_tokens` budget, which already cap\n[…]\nudget across feasible Eagle draft lengths;\nit failed (no KV budget) before the fix.\n\nSigned-off-by: Yiming Liu <yimingl@nvidia.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(sdk): stop double-counting MTP activation in KV-cache capacity es…",
          "author_name": "Yimingl_Nvidia",
          "author_login": "Arsene12358",
          "committed_at": "2026-06-30T01:28:01Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1501f6abdceabc62abd9f34a4f40329cfdc3e1e1",
          "body": "Signed-off-by: hongkuanz <hongkuanz@nvidia.com>",
          "is_bot": false,
          "headline": "fix(sdk): support ModelOpt mixed precision quant metadata (#1241)",
          "author_name": "Hongkuan Zhou",
          "author_login": "tedzhouhk",
          "committed_at": "2026-06-29T22:31:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e015c0ed6c19af13f12986835c1fec27d575fba2",
          "body": "* refactor(collector): prune v2 cases without losing v1 coverage\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\n\n* docs(collector): propose populate-time case compiler\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\n\n* feat(collector): centralize case population and coverage guards\n\nSigned-off-by\n[…]\ny: Tianhao Xu <tianhaox@nvidia.com>\n\n* fix(collector): harden artifact-aware moe population\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\n\n---------\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>",
          "is_bot": false,
          "headline": "refactor(collector): prune v2 cases with artifact-aware coverage (#1256)",
          "author_name": "Tianhao Xu",
          "author_login": "tianhaox",
          "committed_at": "2026-06-29T21:48:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "90d5d51de76a1ac3bafe5542cb69bbb0359c5d23",
          "body": "Signed-off-by: hongkuanz <hongkuanz@nvidia.com>",
          "is_bot": false,
          "headline": "feat(spica): expand prefill candidates and bump Dynamo (#1261)",
          "author_name": "Hongkuan Zhou",
          "author_login": "tedzhouhk",
          "committed_at": "2026-06-29T19:00:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c2d7576cb5b1eed92ed5f09c9c0eec2f7afbaee8",
          "body": "…/MSA support (#1238)\n\n* feat(sdk): data-calibrated empirical mode via SOL-utilization\n\nReplace each op's fixed empirical scale_factor with a utilization read from\nreal collected data:\n\n    empirical_latency = SOL(query) / util,  util = SOL / measured\n\nutil is taken best-effort by nearest-neighbour \n[…]\nng low-latency check, avoiding\nLoadedOpData's dict-equality __eq__.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\n\n* test(sdk):…",
          "is_bot": false,
          "headline": "feat(sdk): data-calibrated hybrid (util-space empirical) + MiniMax-M3…",
          "author_name": "Tianhao Xu",
          "author_login": "tianhaox",
          "committed_at": "2026-06-29T12:29:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "96e26fbeb5fb690a5698f85e1031d5b7b77d1abd",
          "body": "…(#1230)\n\n* feat(cli): add --log-level flag and AICONFIGURATOR_LOG_LEVEL env var\n\nAllow silencing the default INFO-level log lines via either a CLI flag\n\n(--log-level) or the AICONFIGURATOR_LOG_LEVEL env var. Resolution order:\n\nCLI flag > env var > --debug > default INFO. --debug is kept for\n\nbackwa\n[…]\narse_log_level and\nrelated helpers so setup_logging() trusts the caller's level directly.\n\nSigned-off-by: Peter Pan <Peter.Pan@daocloud.io>\n\n---------\n\nSigned-off-by: Peter Pan <Peter.Pan@daocloud.io>",
          "is_bot": false,
          "headline": "feat(cli): add --log-level flag and AICONFIGURATOR_LOG_LEVEL env var …",
          "author_name": "Peter Pan",
          "author_login": "panpan0000",
          "committed_at": "2026-06-29T09:05:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cd084d2029f4cd508a65b09e6464ae0da8192bee",
          "body": "…… (#1247)\n\n* feat: sglang context parallelism (prefill) — dense zigzag + sparse/DSV4 + e2e sweep\n\nSigned-off-by: Kimi Zhao <kimiz@nvidia.com>\n\n* fix: address CodeRabbit review + CP auto-sweep + correct KV-memory model\n\nSigned-off-by: Kimi Zhao <kimiz@nvidia.com>\n\n* fix: model decode MoEDispatch comm under agg CP (pre=0 / post=all_reduce) and add cp output column\n\nSigned-off-by: Kimi Zhao <kimiz@nvidia.com>\n\n---------\n\nSigned-off-by: Kimi Zhao <kimiz@nvidia.com>",
          "is_bot": false,
          "headline": "feat: sglang context parallelism (prefill) — dense zigzag + sparse/DS…",
          "author_name": "Mr Knight",
          "author_login": "YijiaZhao",
          "committed_at": "2026-06-29T04:45:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "66c6e05fef00cbee6546847fa2280116ef4a38cd",
          "body": "Signed-off-by: hongkuanz <hongkuanz@nvidia.com>",
          "is_bot": false,
          "headline": "fix(fpm): use weighted hinge for prefill regression (#1253)",
          "author_name": "Hongkuan Zhou",
          "author_login": "tedzhouhk",
          "committed_at": "2026-06-27T03:24:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7dc197df986a443d72f9d85da0a468cd140d7cd1",
          "body": "* feat(spica): scaffold Spica smart-sweeper project skeleton (Profiler V2)\n\nIndependent project under aiconfigurator/spica/ for the Replay-backed smart\nsweeper from the DGDR profiler smart-search DEP. Milestone 1: project\nskeleton + input schema only.\n\n- pydantic input schema (SearchSpace / Workload\n[…]\nader to example config\n\nSigned-off-by: hongkuanz <hongkuanz@nvidia.com>\n\n---------\n\nSigned-off-by: hongkuanz <hongkuanz@nvidia.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(spica): Replay-backed smart sweeper (Profiler V2) (#1218)",
          "author_name": "Hongkuan Zhou",
          "author_login": "tedzhouhk",
          "committed_at": "2026-06-26T18:57:10Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8ce664aea0005f5c1b5efeddf35ea6c75c8f236a",
          "body": "…#1219)\n\n* fix(sdk): reuse older collected data in SILICON mode\n\nEnable the perf-database shared layer (sibling/cross-version row inheritance) in SILICON mode, not just HYBRID. Reused older collected data is still silicon data, so SILICON now fills shapes missing from the active backend/version from\n[…]\nom>\n\n* fix(sdk): enable shared-layer reuse by default\n\nSigned-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>\n\n---------\n\nSigned-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>",
          "is_bot": false,
          "headline": "fix(sdk): reuse older collected data in SILICON mode (shared layer) (…",
          "author_name": "Jason Zhou",
          "author_login": "jasonqinzhou",
          "committed_at": "2026-06-26T18:24:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c3b7cda547d93990fb8732d9d8b3b8075ab14ace",
          "body": "Signed-off-by: jasonqinzhou <jasonqinzhou@users.noreply.github.com>\nCo-authored-by: jasonqinzhou <jasonqinzhou@users.noreply.github.com>",
          "is_bot": false,
          "headline": "build: split AIC core into a separate wheel (#1251)",
          "author_name": "Jason Zhou",
          "author_login": "jasonqinzhou",
          "committed_at": "2026-06-26T18:19:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd0b2e31584bb36394475ad9df620e334de919a2",
          "body": "…ation silicon (#1249)\n\n* feat(glm5-dsa): fix NVFP4 attention-quant detection + add GB200 fp8 generation silicon\n\nStacked on #1223 (glm5_cp_support).\n\n1. deepseek_v32.py: _dsa_attention_modules_excluded_from_quant now matches the real\n   nvidia/GLM-5-NVFP4 exclude format -- layer-prefixed `model.lay\n[…]\nxt) <noreply@anthropic.com>\nSigned-off-by: Yiming Li <yimingl@nvidia.com>\n\n---------\n\nSigned-off-by: Yiming Li <yimingl@nvidia.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(glm5-dsa): NVFP4 attention-quant detection fix + GB200 fp8 gener…",
          "author_name": "Yimingl_Nvidia",
          "author_login": "Arsene12358",
          "committed_at": "2026-06-26T16:21:03Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e8b6e923f6eaee19abda466115753cae194c69fe",
          "body": "* add kcustomize for llmd deployment\n\nSigned-off-by: Spycsh <sihan.chen@intel.com>\n\n* update llm-d to llm-d-helm and correct kustomize name\n\nSigned-off-by: Spycsh <sihan.chen@intel.com>\n\n* add kustomization j2 file\n\nSigned-off-by: Spycsh <sihan.chen@intel.com>\n\n* remove 0.17.0 dep for upstream\n\nSigned-off-by: Spycsh <sihan.chen@intel.com>\n\n* fix readme\n\nSigned-off-by: Spycsh <sihan.chen@intel.com>\n\n---------\n\nSigned-off-by: Spycsh <sihan.chen@intel.com>",
          "is_bot": false,
          "headline": "feat: Add llm-d Kustomize overlay deployment target (#1243)",
          "author_name": "Sihan Chen",
          "author_login": "Spycsh",
          "committed_at": "2026-06-26T06:07:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d738298fa01f87d6f461fe5a7e15fade23203c60",
          "body": "…t (#1246)\n\nB200 SXM mem_bw was 8 TB/s, higher than B300 SXM (7.75 TB/s), causing\ndecode throughput inversion where B200 outperformed B300 in simulations.\nUpdated to 7.7 TB/s per the official NVIDIA Blackwell datasheet.\n\nSigned-off-by: wanjia <jia.wanj@alibaba-inc.com>\nCo-authored-by: wanjia <jia.wanj@alibaba-inc.com>",
          "is_bot": false,
          "headline": "fix(systems): correct B200 SXM HBM bandwidth to 7.7 TB/s per datashee…",
          "author_name": "wanjia",
          "author_login": "wanjia",
          "committed_at": "2026-06-26T05:42:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cd31ad6718e21e7cb453f8fee638c54919a42602",
          "body": "* fix: guard run_agg tokens_s_user against tpot==0 for osl=1\n\nWhen osl=1 the generation phase is empty, tpot becomes 0, and\n`tokens_s_user = 1000 / tpot` raised ZeroDivisionError. The same\nfallback pattern (`0.0 if tpot == 0.0 else 1000.0 / tpot`) is\nalready used in run_static further down in the sa\n[…]\ngned-off-by: Peter Pan <Peter.Pan@daocloud.io>\n\n* fix: guard run_agg tokens/s/user by osl\n\nSigned-off-by: Peter Pan <Peter.Pan@daocloud.io>\n\n---------\n\nSigned-off-by: Peter Pan <Peter.Pan@daocloud.io>",
          "is_bot": false,
          "headline": "fix: guard run_agg tokens_s_user against tpot==0 for osl=1 (#1229)",
          "author_name": "Peter Pan",
          "author_login": "panpan0000",
          "committed_at": "2026-06-26T05:33:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f2a97ed0870a1132b9468c5c71ca9db293b2a063",
          "body": "Signed-off-by: jasonqinzhou <jasonqinzhou@users.noreply.github.com>\nCo-authored-by: jasonqinzhou <jasonqinzhou@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore: remove webapp CLI command (#1245)",
          "author_name": "Jason Zhou",
          "author_login": "jasonqinzhou",
          "committed_at": "2026-06-25T01:36:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e46ece7510e727fafefb8212e5846172145a30ea",
          "body": "…(#1221)\n\n* fix(interpolation): fail accurately on insufficient data, drop silent handling\n\nPRs #1114 and #1158 changed the shared interpolation engine so it either\nsilently returned wrong values or raised errors the perf DB could not\nclassify. This makes the engine fail accurately when it cannot pr\n[…]\n<noreply@anthropic.com>\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\n\n---------\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: fail accurately on insufficient data instead of silent handling …",
          "author_name": "Tianhao Xu",
          "author_login": "tianhaox",
          "committed_at": "2026-06-24T00:00:07Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2ae0a2aed63c05deb2c8f0583d6971d64e30bf6e",
          "body": "… (#1223)\n\n* feat: sglang DSA/sparse AIC collection + CP prefill modeling for glm5\n\nSigned-off-by: Kimi Zhao <kimiz@nvidia.com>\n\n* fix: collector kernel mismatch vs serve\n\nSigned-off-by: Kimi Zhao <kimiz@nvidia.com>\n\n* fix: incremental CP comm + sparse per-bs collection + CP review fixes\n\nSigned-off\n[…]\noff-by: Kimi Zhao <kimiz@nvidia.com>\nSigned-off-by: Yiming Liu <yimingl@nvidia.com>\nCo-authored-by: Yiming Liu <yimingl@nvidia.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: sglang DSA/sparse AIC collection + CP prefill modeling for glm5…",
          "author_name": "Mr Knight",
          "author_login": "YijiaZhao",
          "committed_at": "2026-06-23T16:47:27Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d908538fc5c9c5fc2d3bfcc8fd3d40cd8cd98806",
          "body": "* ci: upgrade Node 20 GitHub Actions to Node 24\n\nGitHub is deprecating the Node 20 actions runtime. Bump every action whose\naction.yml declares 'using: node20' to its Node 24 release across all workflows\n(build-test.yml is handled separately in PR #1206):\n\n  actions/checkout            v4 -> v5\n  ac\n[…]\nd-off-by: Harrison King Saturley-Hall <hsaturleyhal@nvidia.com>\n\n---------\n\nSigned-off-by: Harrison King Saturley-Hall <hsaturleyhal@nvidia.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "ci: upgrade Node 20 GitHub Actions to Node 24 (#1214)",
          "author_name": "Harrison Saturley-Hall",
          "author_login": "saturley-hall",
          "committed_at": "2026-06-23T15:37:47Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9e93fd34452e419046385958dbd126044c5fe30f",
          "body": "… pre-merge check (#1212)\n\n* fix(tests): evict dsv4_megamoe_workload from module cache after mock-torch import\n\ntest_dsv4_megamoe_env.py mocks sys.modules[\"torch\"] at collection time to\nimport collect_dsv4_megamoe without CUDA. collect_dsv4_megamoe imports\ndsv4_megamoe_workload at module level, so t\n[…]\neply@anthropic.com>\nSigned-off-by: Nathan Scott <nathans@redhat.com>\n\n---------\n\nSigned-off-by: Nathan Scott <nathans@redhat.com>\nCo-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(tests): fix mock-torch module cache pollution + disable docstring…",
          "author_name": "Nathan Scott",
          "author_login": "natoscott",
          "committed_at": "2026-06-23T10:05:33Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0d2668649474858d0eaa251fb3d4cdb721cc98e0",
          "body": "* fix: correct mix-step latency over-estimation in run_agg\n\nFixes #1150.\n\nIntroduces BaseBackend._mix_step_efficiency(ctx_tokens, gen_tokens),\napplied to mix_step_latency_ms immediately after _get_mix_step_latency.\nDefault 1.0 preserves existing behaviour for backends without empirical\nefficiency da\n[…]\neply@anthropic.com>\nSigned-off-by: Nathan Scott <nathans@redhat.com>\n\n---------\n\nSigned-off-by: Nathan Scott <nathans@redhat.com>\nCo-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: add prefill dispatch overhead hook to T_prefill (#1166)",
          "author_name": "Nathan Scott",
          "author_login": "natoscott",
          "committed_at": "2026-06-23T09:49:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6c22315219c9f22f2d6b1b8801824f6351125c90",
          "body": "* generator: DeploymentIR + single pipeline orchestrator + emit/manifest\n\nService-graph IR, one pipeline that builds the IR and emits artifacts (output unchanged), artifact manifest, environment profile schema/default.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nSigned-off-\n[…]\n1M context) <noreply@anthropic.com>\nSigned-off-by: etshen <etshen@nvidia.com>\n\n---------\n\nSigned-off-by: etshen <etshen@nvidia.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: generator refactor (#1237)",
          "author_name": "Ethan-ES",
          "author_login": "Ethan-ES",
          "committed_at": "2026-06-23T09:33:06Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1cb6a8c254118137603194d9156659fc331f541f",
          "body": "…1216)\n\nDeepSeek-V4 attention stores one ``head_dim``-sized KV vector per token,\nshared across all attention heads (MLA / MQA-equivalent layout). This is\nalready reflected in the storage-capacity formula in\n``DeepSeekV4Model.get_kvcache_bytes_per_sequence``, which derives\n``cache_entry_bytes = head_\n[…]\nnt of ``num_heads`` for MQA-style storage.\n\nAll 51 existing DeepSeek-V4 unit tests continue to pass.\n\nSigned-off-by: wanjia <jia.wanj@alibaba-inc.com>\nCo-authored-by: wanjia <jia.wanj@alibaba-inc.com>",
          "is_bot": false,
          "headline": "fix(dsv4): use MQA-correct KV cache bytes in attention SOL formula (#…",
          "author_name": "wanjia",
          "author_login": "wanjia",
          "committed_at": "2026-06-23T08:22:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b5ebf734521129b6e7852be8bc9b68f1dc629c57",
          "body": "…d (#1233)\n\n* fix(data): re-collect ragged perf grids from #1114/#1158 healing PRs\n\nReplace ragged/sparse perf parquet (introduced by #1114 B200 replay and #1158\nL40S heal) with freshly collected data from the aic-auto-collector campaign\n(GitLab dl/ai-dynamo/aic-auto-collector, 2026-06-15, AIC_REVIS\n[…]\n<noreply@anthropic.com>\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\n\n---------\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: clean up partial perf data and constrain collector attention gri…",
          "author_name": "Tianhao Xu",
          "author_login": "tianhaox",
          "committed_at": "2026-06-22T17:54:17Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "31380331f8baa100ca73b90d94136ceadc409a8e",
          "body": "* fix: bound parity-scan worker memory via --max-tasks-per-child\n\nEach scan worker holds a per-process SupportMatrix that caches the perf DB\n+ models for every (model,system,backend,version) it touches; without\nrecycling this grows unbounded and OOM-kills long full-matrix runs (workers\nhang / Broken\n[…]\nne bad entry doesn't kill the rest.\n\nSigned-off-by: Simone Chen <simonec@nvidia.com>\n\n---------\n\nSigned-off-by: Simone Chen <simonec@nvidia.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(rust): close Rust↔Python engine-step latency parity gate (#1235)",
          "author_name": "Simone Chen",
          "author_login": "simone-chen",
          "committed_at": "2026-06-22T17:48:51Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "293ca13baec55d1e4e342e6a6b9f324b56a86d0c",
          "body": "* refactor(collector): stop collecting redundant fp8_static GEMM\n\nfp8_static is derived at query time from the dynamic fp8 GEMM minus the\ncompute_scale/scale_matrix overhead tables; the SDK discards any collected\nfp8_static GEMM row (perf_database._gemm_key_names re-derives it). The\ntrtllm collector\n[…]\nit review on PR #1220.\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\n\n---------\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: fp8 static quant (#1220)",
          "author_name": "Tianhao Xu",
          "author_login": "tianhaox",
          "committed_at": "2026-06-22T14:52:38Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "cf5b256e06aea4736d695b7c103af6f9f0adbb96",
          "body": "* refactor(sdk): integrate v2 Task into CLI, remove v1, keep v1 YAML compat\n\nPhase 2 of the task-config v2 work: the flat v2 `Task` (sdk/task_v2.py) is now\nthe only task config; the legacy v1 `TaskConfig`/`TaskRunner` (sdk/task.py) is\ndeleted.\n\n- CLI (cli/main build_default/experiment + _execute, cl\n[…]\n<noreply@anthropic.com>\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\n\n---------\n\nSigned-off-by: Tianhao Xu <tianhaox@nvidia.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor: integrate v2 Task into CLI - phase 2 (#1215)",
          "author_name": "Tianhao Xu",
          "author_login": "tianhaox",
          "committed_at": "2026-06-17T00:10:35Z",
          "body_truncated": true,
          "is_coding_agent": true
        }
      ],
      "releases_count": 12,
      "commits_last_year": 744,
      "latest_release_at": "2026-07-15T20:49:21Z",
      "latest_release_tag": "v0.10.0",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 48,
      "days_since_latest_release": 10,
      "mean_days_between_releases": 33.3
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 87,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "aiconfigurator",
          "exists": true,
          "license": "Apache-2.0",
          "keywords": [
            "decode",
            "distributed",
            "dynamo",
            "gpu",
            "inference",
            "llm",
            "nvidia",
            "prefill",
            "Development Status :: 4 - Beta",
            "Intended Audience :: Developers",
            "Intended Audience :: Information Technology",
            "Intended Audience :: Science/Research",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.10",
            "Programming Language :: Python :: 3.11",
            "Programming Language :: Python :: 3.12",
            "Topic :: Scientific/Engineering",
            "Topic :: Scientific/Engineering :: Artificial Intelligence"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/aiconfigurator/",
          "is_deprecated": false,
          "latest_version": "0.10.0",
          "repository_url": "https://github.com/ai-dynamo/aiconfigurator.git",
          "versions_count": 13,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2025-07-28T15:40:12.478282Z",
          "latest_published_at": "2026-07-15T20:37:07.998036Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 10
        }
      ]
    },
    "popularity": {
      "forks": 141,
      "stars": 374,
      "watchers": 7,
      "fork_history": {
        "days": [
          {
            "date": "2025-08-15",
            "count": 1
          },
          {
            "date": "2025-08-18",
            "count": 2
          },
          {
            "date": "2025-08-19",
            "count": 1
          },
          {
            "date": "2025-08-21",
            "count": 3
          },
          {
            "date": "2025-08-24",
            "count": 1
          },
          {
            "date": "2025-08-27",
            "count": 1
          },
          {
            "date": "2025-08-28",
            "count": 1
          },
          {
            "date": "2025-08-29",
            "count": 1
          },
          {
            "date": "2025-08-30",
            "count": 1
          },
          {
            "date": "2025-09-08",
            "count": 2
          },
          {
            "date": "2025-09-26",
            "count": 1
          },
          {
            "date": "2025-09-28",
            "count": 1
          },
          {
            "date": "2025-09-29",
            "count": 1
          },
          {
            "date": "2025-10-07",
            "count": 1
          },
          {
            "date": "2025-10-15",
            "count": 1
          },
          {
            "date": "2025-10-16",
            "count": 2
          },
          {
            "date": "2025-10-17",
            "count": 1
          },
          {
            "date": "2025-10-22",
            "count": 1
          },
          {
            "date": "2025-11-05",
            "count": 1
          },
          {
            "date": "2025-11-13",
            "count": 1
          },
          {
            "date": "2025-11-17",
            "count": 1
          },
          {
            "date": "2025-11-18",
            "count": 1
          },
          {
            "date": "2025-11-24",
            "count": 1
          },
          {
            "date": "2025-11-29",
            "count": 1
          },
          {
            "date": "2025-12-01",
            "count": 2
          },
          {
            "date": "2025-12-03",
            "count": 2
          },
          {
            "date": "2025-12-04",
            "count": 1
          },
          {
            "date": "2025-12-06",
            "count": 2
          },
          {
            "date": "2025-12-15",
            "count": 1
          },
          {
            "date": "2025-12-24",
            "count": 1
          },
          {
            "date": "2025-12-31",
            "count": 1
          },
          {
            "date": "2026-01-04",
            "count": 1
          },
          {
            "date": "2026-01-05",
            "count": 2
          },
          {
            "date": "2026-01-08",
            "count": 2
          },
          {
            "date": "2026-01-10",
            "count": 1
          },
          {
            "date": "2026-01-12",
            "count": 2
          },
          {
            "date": "2026-01-20",
            "count": 1
          },
          {
            "date": "2026-01-22",
            "count": 3
          },
          {
            "date": "2026-01-26",
            "count": 1
          },
          {
            "date": "2026-01-29",
            "count": 2
          },
          {
            "date": "2026-02-03",
            "count": 2
          },
          {
            "date": "2026-02-08",
            "count": 1
          },
          {
            "date": "2026-02-11",
            "count": 2
          },
          {
            "date": "2026-02-12",
            "count": 1
          },
          {
            "date": "2026-02-15",
            "count": 2
          },
          {
            "date": "2026-02-16",
            "count": 1
          },
          {
            "date": "2026-02-24",
            "count": 1
          },
          {
            "date": "2026-02-25",
            "count": 2
          },
          {
            "date": "2026-03-03",
            "count": 1
          },
          {
            "date": "2026-03-04",
            "count": 1
          },
          {
            "date": "2026-03-09",
            "count": 1
          },
          {
            "date": "2026-03-17",
            "count": 1
          },
          {
            "date": "2026-03-18",
            "count": 1
          },
          {
            "date": "2026-03-19",
            "count": 1
          },
          {
            "date": "2026-03-20",
            "count": 2
          },
          {
            "date": "2026-03-24",
            "count": 1
          },
          {
            "date": "2026-03-26",
            "count": 2
          },
          {
            "date": "2026-03-27",
            "count": 2
          },
          {
            "date": "2026-03-28",
            "count": 2
          },
          {
            "date": "2026-03-29",
            "count": 1
          },
          {
            "date": "2026-03-30",
            "count": 1
          },
          {
            "date": "2026-03-31",
            "count": 1
          },
          {
            "date": "2026-04-01",
            "count": 2
          },
          {
            "date": "2026-04-02",
            "count": 1
          },
          {
            "date": "2026-04-03",
            "count": 3
          },
          {
            "date": "2026-04-07",
            "count": 3
          },
          {
            "date": "2026-04-13",
            "count": 3
          },
          {
            "date": "2026-04-15",
            "count": 1
          },
          {
            "date": "2026-04-16",
            "count": 1
          },
          {
            "date": "2026-04-20",
            "count": 2
          },
          {
            "date": "2026-04-22",
            "count": 2
          },
          {
            "date": "2026-04-27",
            "count": 1
          },
          {
            "date": "2026-04-28",
            "count": 2
          },
          {
            "date": "2026-05-01",
            "count": 2
          },
          {
            "date": "2026-05-03",
            "count": 1
          },
          {
            "date": "2026-05-05",
            "count": 1
          },
          {
            "date": "2026-05-07",
            "count": 1
          },
          {
            "date": "2026-05-09",
            "count": 1
          },
          {
            "date": "2026-05-11",
            "count": 1
          },
          {
            "date": "2026-05-13",
            "count": 1
          },
          {
            "date": "2026-05-14",
            "count": 1
          },
          {
            "date": "2026-05-19",
            "count": 1
          },
          {
            "date": "2026-05-20",
            "count": 2
          },
          {
            "date": "2026-05-21",
            "count": 3
          },
          {
            "date": "2026-06-03",
            "count": 1
          },
          {
            "date": "2026-06-04",
            "count": 1
          },
          {
            "date": "2026-06-06",
            "count": 1
          },
          {
            "date": "2026-06-15",
            "count": 1
          },
          {
            "date": "2026-06-17",
            "count": 1
          },
          {
            "date": "2026-06-22",
            "count": 1
          },
          {
            "date": "2026-06-25",
            "count": 2
          },
          {
            "date": "2026-06-29",
            "count": 1
          },
          {
            "date": "2026-07-01",
            "count": 1
          },
          {
            "date": "2026-07-05",
            "count": 1
          },
          {
            "date": "2026-07-06",
            "count": 1
          },
          {
            "date": "2026-07-07",
            "count": 1
          },
          {
            "date": "2026-07-09",
            "count": 1
          },
          {
            "date": "2026-07-14",
            "count": 1
          },
          {
            "date": "2026-07-15",
            "count": 1
          },
          {
            "date": "2026-07-17",
            "count": 1
          },
          {
            "date": "2026-07-21",
            "count": 1
          },
          {
            "date": "2026-07-23",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 139,
        "total_forks": 141
      },
      "star_history": null,
      "open_issues_and_prs": 73
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "notebooks"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "aic-core/src/aiconfigurator_core/py.typed"
      ],
      "toolchain_manifests": [
        "Cargo.toml",
        "aic-core/rust/aiconfigurator-core/Cargo.toml",
        "aic-core/rust/tests/public-api/Cargo.toml"
      ],
      "largest_source_bytes": 146909,
      "source_files_sampled": 549,
      "oversized_source_files": 23,
      "agent_instruction_files": [
        "AGENTS.md"
      ],
      "agent_instruction_max_bytes": 3663
    },
    "dependencies": {
      "manifests": [
        "Cargo.toml",
        "aic-core/pyproject.toml",
        "pyproject.toml"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 35,
        "malicious_count": 0,
        "assessed_package": "pypi:aiconfigurator@0.10.0",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "crates",
        "pypi"
      ],
      "dependencies": [
        {
          "name": "packaging",
          "manifest": "aic-core/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=20.0"
        },
        {
          "name": "numpy",
          "manifest": "aic-core/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "~=1.26.4"
        },
        {
          "name": "pandas",
          "manifest": "aic-core/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.2.3"
        },
        {
          "name": "pyarrow",
          "manifest": "aic-core/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=15.0.0"
        },
        {
          "name": "pyyaml",
          "manifest": "aic-core/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=6.0"
        },
        {
          "name": "scipy",
          "manifest": "aic-core/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.13.1"
        },
        {
          "name": "aiconfigurator-core",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==0.11.0"
        },
        {
          "name": "jinja2",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.1.0"
        },
        {
          "name": "packaging",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=20.0"
        },
        {
          "name": "matplotlib",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.9.4"
        },
        {
          "name": "numpy",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "~=1.26.4"
        },
        {
          "name": "pandas",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.2.3"
        },
        {
          "name": "plotext",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=5.3.2"
        },
        {
          "name": "plotly",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=6.0.1"
        },
        {
          "name": "prettytable",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.16.0"
        },
        {
          "name": "pydantic",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.5"
        },
        {
          "name": "pyarrow",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=15.0.0"
        },
        {
          "name": "pyyaml",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=6.0"
        },
        {
          "name": "tqdm",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=4.0.0"
        },
        {
          "name": "bokeh",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "nvidia-ml-py",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "munch",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=4.0.0"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "aiconfigurator-core",
            "direct": true,
            "version": "0.11.0",
            "ecosystem": "pypi"
          },
          {
            "name": "bokeh",
            "direct": true,
            "version": "3.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jinja2",
            "direct": true,
            "version": "3.1.6",
            "ecosystem": "pypi"
          },
          {
            "name": "matplotlib",
            "direct": true,
            "version": "3.10.8",
            "ecosystem": "pypi"
          },
          {
            "name": "munch",
            "direct": true,
            "version": "4.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "numpy",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "numpy",
            "direct": true,
            "version": "1.26.4",
            "ecosystem": "pypi"
          },
          {
            "name": "nvidia-ml-py",
            "direct": true,
            "version": "13.595.45",
            "ecosystem": "pypi"
          },
          {
            "name": "packaging",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "packaging",
            "direct": true,
            "version": "26.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pandas",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pandas",
            "direct": true,
            "version": "2.3.3",
            "ecosystem": "pypi"
          },
          {
            "name": "pandas",
            "direct": true,
            "version": "3.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "plotext",
            "direct": true,
            "version": "5.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "plotly",
            "direct": true,
            "version": "6.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "prettytable",
            "direct": true,
            "version": "3.17.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyarrow",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pyarrow",
            "direct": true,
            "version": "24.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic",
            "direct": true,
            "version": "2.12.5",
            "ecosystem": "pypi"
          },
          {
            "name": "pyyaml",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pyyaml",
            "direct": true,
            "version": "6.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "scipy",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "scipy",
            "direct": true,
            "version": "1.15.3",
            "ecosystem": "pypi"
          },
          {
            "name": "scipy",
            "direct": true,
            "version": "1.17.1",
            "ecosystem": "pypi"
          },
          {
            "name": "tqdm",
            "direct": true,
            "version": "4.67.3",
            "ecosystem": "pypi"
          },
          {
            "name": "anyhow",
            "direct": false,
            "version": "1.0.102",
            "ecosystem": "crates"
          },
          {
            "name": "bitflags",
            "direct": false,
            "version": "2.11.1",
            "ecosystem": "crates"
          },
          {
            "name": "cfg-if",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "crates"
          },
          {
            "name": "csv",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "csv-core",
            "direct": false,
            "version": "0.1.13",
            "ecosystem": "crates"
          },
          {
            "name": "equivalent",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "crates"
          },
          {
            "name": "errno",
            "direct": false,
            "version": "0.3.14",
            "ecosystem": "crates"
          },
          {
            "name": "fastrand",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "foldhash",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "getrandom",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "crates"
          },
          {
            "name": "hashbrown",
            "direct": false,
            "version": "0.15.5",
            "ecosystem": "crates"
          },
          {
            "name": "hashbrown",
            "direct": false,
            "version": "0.17.0",
            "ecosystem": "crates"
          },
          {
            "name": "heck",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "id-arena",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "indexmap",
            "direct": false,
            "version": "2.14.0",
            "ecosystem": "crates"
          },
          {
            "name": "itoa",
            "direct": false,
            "version": "1.0.18",
            "ecosystem": "crates"
          },
          {
            "name": "leb128fmt",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "libc",
            "direct": false,
            "version": "0.2.186",
            "ecosystem": "crates"
          },
          {
            "name": "linux-raw-sys",
            "direct": false,
            "version": "0.12.1",
            "ecosystem": "crates"
          },
          {
            "name": "log",
            "direct": false,
            "version": "0.4.29",
            "ecosystem": "crates"
          },
          {
            "name": "memchr",
            "direct": false,
            "version": "2.8.0",
            "ecosystem": "crates"
          },
          {
            "name": "once_cell",
            "direct": false,
            "version": "1.21.4",
            "ecosystem": "crates"
          },
          {
            "name": "prettyplease",
            "direct": false,
            "version": "0.2.37",
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro2",
            "direct": false,
            "version": "1.0.106",
            "ecosystem": "crates"
          },
          {
            "name": "quote",
            "direct": false,
            "version": "1.0.45",
            "ecosystem": "crates"
          },
          {
            "name": "r-efi",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "rustix",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "ryu",
            "direct": false,
            "version": "1.0.23",
            "ecosystem": "crates"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "1.0.28",
            "ecosystem": "crates"
          },
          {
            "name": "serde",
            "direct": false,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "serde_core",
            "direct": false,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "serde_derive",
            "direct": false,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "serde_json",
            "direct": false,
            "version": "1.0.149",
            "ecosystem": "crates"
          },
          {
            "name": "serde_yaml",
            "direct": false,
            "version": "0.9.34+deprecated",
            "ecosystem": "crates"
          },
          {
            "name": "syn",
            "direct": false,
            "version": "2.0.117",
            "ecosystem": "crates"
          },
          {
            "name": "tempfile",
            "direct": false,
            "version": "3.27.0",
            "ecosystem": "crates"
          },
          {
            "name": "thiserror",
            "direct": false,
            "version": "2.0.18",
            "ecosystem": "crates"
          },
          {
            "name": "thiserror-impl",
            "direct": false,
            "version": "2.0.18",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-ident",
            "direct": false,
            "version": "1.0.24",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-xid",
            "direct": false,
            "version": "0.2.6",
            "ecosystem": "crates"
          },
          {
            "name": "unsafe-libyaml",
            "direct": false,
            "version": "0.2.11",
            "ecosystem": "crates"
          },
          {
            "name": "wasip2",
            "direct": false,
            "version": "1.0.3+wasi-0.2.9",
            "ecosystem": "crates"
          },
          {
            "name": "wasip3",
            "direct": false,
            "version": "0.4.0+wasi-0.3.0-rc-2026-01-06",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-encoder",
            "direct": false,
            "version": "0.244.0",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-metadata",
            "direct": false,
            "version": "0.244.0",
            "ecosystem": "crates"
          },
          {
            "name": "wasmparser",
            "direct": false,
            "version": "0.244.0",
            "ecosystem": "crates"
          },
          {
            "name": "windows-link",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows-sys",
            "direct": false,
            "version": "0.61.2",
            "ecosystem": "crates"
          },
          {
            "name": "wit-bindgen",
            "direct": false,
            "version": "0.51.0",
            "ecosystem": "crates"
          },
          {
            "name": "wit-bindgen",
            "direct": false,
            "version": "0.57.1",
            "ecosystem": "crates"
          },
          {
            "name": "wit-bindgen-core",
            "direct": false,
            "version": "0.51.0",
            "ecosystem": "crates"
          },
          {
            "name": "wit-bindgen-rust",
            "direct": false,
            "version": "0.51.0",
            "ecosystem": "crates"
          },
          {
            "name": "wit-bindgen-rust-macro",
            "direct": false,
            "version": "0.51.0",
            "ecosystem": "crates"
          },
          {
            "name": "wit-component",
            "direct": false,
            "version": "0.244.0",
            "ecosystem": "crates"
          },
          {
            "name": "wit-parser",
            "direct": false,
            "version": "0.244.0",
            "ecosystem": "crates"
          },
          {
            "name": "zmij",
            "direct": false,
            "version": "1.0.21",
            "ecosystem": "crates"
          },
          {
            "name": "aiconfigurator",
            "direct": false,
            "version": "0.11.0",
            "ecosystem": "pypi"
          },
          {
            "name": "annotated-doc",
            "direct": false,
            "version": "0.0.4",
            "ecosystem": "pypi"
          },
          {
            "name": "annotated-types",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "anyio",
            "direct": false,
            "version": "4.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "asttokens",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "attrs",
            "direct": false,
            "version": "26.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "backports-asyncio-runner",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "certifi",
            "direct": false,
            "version": "2026.2.25",
            "ecosystem": "pypi"
          },
          {
            "name": "cfgv",
            "direct": false,
            "version": "3.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "chardet",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "charset-normalizer",
            "direct": false,
            "version": "3.4.7",
            "ecosystem": "pypi"
          },
          {
            "name": "click",
            "direct": false,
            "version": "8.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "colorama",
            "direct": false,
            "version": "0.4.6",
            "ecosystem": "pypi"
          },
          {
            "name": "contourpy",
            "direct": false,
            "version": "1.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "contourpy",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "pypi"
          },
          {
            "name": "coverage",
            "direct": false,
            "version": "7.13.5",
            "ecosystem": "pypi"
          },
          {
            "name": "cycler",
            "direct": false,
            "version": "0.12.1",
            "ecosystem": "pypi"
          },
          {
            "name": "dataproperty",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "dateparser",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "decorator",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "distlib",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "exceptiongroup",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "execnet",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "executing",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "fastapi",
            "direct": false,
            "version": "0.135.3",
            "ecosystem": "pypi"
          },
          {
            "name": "fastjsonschema",
            "direct": false,
            "version": "2.21.2",
            "ecosystem": "pypi"
          },
          {
            "name": "filelock",
            "direct": false,
            "version": "3.25.2",
            "ecosystem": "pypi"
          },
          {
            "name": "fonttools",
            "direct": false,
            "version": "4.62.1",
            "ecosystem": "pypi"
          },
          {
            "name": "h11",
            "direct": false,
            "version": "0.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "httmock",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "identify",
            "direct": false,
            "version": "2.6.18",
            "ecosystem": "pypi"
          },
          {
            "name": "idna",
            "direct": false,
            "version": "3.11",
            "ecosystem": "pypi"
          },
          {
            "name": "import-ipynb",
            "direct": false,
            "version": "0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "iniconfig",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ipython",
            "direct": false,
            "version": "8.39.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ipython",
            "direct": false,
            "version": "9.10.1",
            "ecosystem": "pypi"
          },
          {
            "name": "ipython",
            "direct": false,
            "version": "9.12.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ipython-pygments-lexers",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "jedi",
            "direct": false,
            "version": "0.19.2",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema",
            "direct": false,
            "version": "4.26.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema-specifications",
            "direct": false,
            "version": "2025.9.1",
            "ecosystem": "pypi"
          },
          {
            "name": "jupyter-core",
            "direct": false,
            "version": "5.9.1",
            "ecosystem": "pypi"
          },
          {
            "name": "kiwisolver",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "markupsafe",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "matplotlib-inline",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "maturin",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mbstrdecoder",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "pypi"
          },
          {
            "name": "narwhals",
            "direct": false,
            "version": "2.18.1",
            "ecosystem": "pypi"
          },
          {
            "name": "nbformat",
            "direct": false,
            "version": "5.10.4",
            "ecosystem": "pypi"
          },
          {
            "name": "nodeenv",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "pypi"
          },
          {
            "name": "orjson",
            "direct": false,
            "version": "3.11.8",
            "ecosystem": "pypi"
          },
          {
            "name": "parso",
            "direct": false,
            "version": "0.8.6",
            "ecosystem": "pypi"
          },
          {
            "name": "pathvalidate",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pexpect",
            "direct": false,
            "version": "4.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pillow",
            "direct": false,
            "version": "12.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "platformdirs",
            "direct": false,
            "version": "4.9.4",
            "ecosystem": "pypi"
          },
          {
            "name": "pluggy",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pre-commit",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "prometheus-api-client",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "prompt-toolkit",
            "direct": false,
            "version": "3.0.52",
            "ecosystem": "pypi"
          },
          {
            "name": "ptyprocess",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pure-eval",
            "direct": false,
            "version": "0.2.3",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-core",
            "direct": false,
            "version": "2.41.5",
            "ecosystem": "pypi"
          },
          {
            "name": "pygments",
            "direct": false,
            "version": "2.20.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyparsing",
            "direct": false,
            "version": "3.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pytablewriter",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest",
            "direct": false,
            "version": "8.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-asyncio",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-cov",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-md-report",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-mock",
            "direct": false,
            "version": "3.15.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-split",
            "direct": false,
            "version": "0.11.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-timeout",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-xdist",
            "direct": false,
            "version": "3.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "python-dateutil",
            "direct": false,
            "version": "2.9.0.post0",
            "ecosystem": "pypi"
          },
          {
            "name": "python-discovery",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytz",
            "direct": false,
            "version": "2026.1.post1",
            "ecosystem": "pypi"
          },
          {
            "name": "referencing",
            "direct": false,
            "version": "0.37.0",
            "ecosystem": "pypi"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "2026.5.9",
            "ecosystem": "pypi"
          },
          {
            "name": "requests",
            "direct": false,
            "version": "2.34.2",
            "ecosystem": "pypi"
          },
          {
            "name": "rpds-py",
            "direct": false,
            "version": "0.30.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ruff",
            "direct": false,
            "version": "0.14.1",
            "ecosystem": "pypi"
          },
          {
            "name": "setuptools",
            "direct": false,
            "version": "82.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "six",
            "direct": false,
            "version": "1.17.0",
            "ecosystem": "pypi"
          },
          {
            "name": "stack-data",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "starlette",
            "direct": false,
            "version": "0.52.1",
            "ecosystem": "pypi"
          },
          {
            "name": "tabledata",
            "direct": false,
            "version": "1.3.4",
            "ecosystem": "pypi"
          },
          {
            "name": "tcolorpy",
            "direct": false,
            "version": "0.1.7",
            "ecosystem": "pypi"
          },
          {
            "name": "tomli",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "tornado",
            "direct": false,
            "version": "6.5.5",
            "ecosystem": "pypi"
          },
          {
            "name": "traitlets",
            "direct": false,
            "version": "5.14.3",
            "ecosystem": "pypi"
          },
          {
            "name": "typepy",
            "direct": false,
            "version": "1.3.4",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-extensions",
            "direct": false,
            "version": "4.15.0",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-inspection",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "tzdata",
            "direct": false,
            "version": "2025.3",
            "ecosystem": "pypi"
          },
          {
            "name": "tzlocal",
            "direct": false,
            "version": "5.4.3",
            "ecosystem": "pypi"
          },
          {
            "name": "urllib3",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "uv",
            "direct": false,
            "version": "0.11.3",
            "ecosystem": "pypi"
          },
          {
            "name": "uvicorn",
            "direct": false,
            "version": "0.42.0",
            "ecosystem": "pypi"
          },
          {
            "name": "virtualenv",
            "direct": false,
            "version": "21.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "wcwidth",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "xyzservices",
            "direct": false,
            "version": "2026.3.0",
            "ecosystem": "pypi"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 183,
        "direct_count": 25,
        "indirect_count": 158
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 29,
        "merged_prs": 1031,
        "open_issues": 44,
        "closed_ratio": 0.47,
        "closed_issues": 39,
        "closed_unmerged_prs": 273
      },
      "bus_factor": 5,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "jasonqinzhou",
          "commits": 114,
          "avatar_url": "https://avatars.githubusercontent.com/u/193640225?v=4"
        },
        {
          "type": "User",
          "login": "tianhaox",
          "commits": 85,
          "avatar_url": "https://avatars.githubusercontent.com/u/49143331?v=4"
        },
        {
          "type": "User",
          "login": "simone-chen",
          "commits": 67,
          "avatar_url": "https://avatars.githubusercontent.com/u/29456802?v=4"
        },
        {
          "type": "User",
          "login": "ilyasher",
          "commits": 65,
          "avatar_url": "https://avatars.githubusercontent.com/u/46343317?v=4"
        },
        {
          "type": "User",
          "login": "Harrilee",
          "commits": 61,
          "avatar_url": "https://avatars.githubusercontent.com/u/62582000?v=4"
        },
        {
          "type": "User",
          "login": "Arsene12358",
          "commits": 55,
          "avatar_url": "https://avatars.githubusercontent.com/u/222128685?v=4"
        },
        {
          "type": "User",
          "login": "dynamo-ops",
          "commits": 38,
          "avatar_url": "https://avatars.githubusercontent.com/u/170655669?v=4"
        },
        {
          "type": "User",
          "login": "Ethan-ES",
          "commits": 33,
          "avatar_url": "https://avatars.githubusercontent.com/u/103923090?v=4"
        },
        {
          "type": "User",
          "login": "YijiaZhao",
          "commits": 28,
          "avatar_url": "https://avatars.githubusercontent.com/u/36357015?v=4"
        },
        {
          "type": "User",
          "login": "natoscott",
          "commits": 20,
          "avatar_url": "https://avatars.githubusercontent.com/u/960510?v=4"
        }
      ],
      "contributors_sampled": 60,
      "top_contributor_share": 0.156
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "accuracy-regression-testing.yml",
        "build-test.yml",
        "cherry-pick.yml",
        "codeowners.yml",
        "collector-audit.yml",
        "comment-charts.yml",
        "comment-perf-parquet-diff.yml",
        "copyright-checks.yml",
        "create-charts.yml",
        "lint-pr-title.yaml",
        "lint.yml",
        "op-kernel-source-manifest-daily-run.yml",
        "perf-parquet-diff.yml",
        "prediction-regression-gate.yml",
        "random-review-assignment.yml",
        "support-matrix-daily-run.yml",
        "support-matrix-main.yml",
        "support-matrix-release.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        "eslint.config.js"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": true
    },
    "security_signals": {
      "lockfiles": [
        "Cargo.lock",
        "uv.lock"
      ],
      "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": 5,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "30 out of 30 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": 10,
            "reason": "all changesets reviewed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 9 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no 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": 10,
            "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 0 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": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 1,
            "reason": "dependency not pinned by hash detected -- score normalized to 1",
            "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": 0,
            "reason": "28 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "b12b9b8c94819b8c6761104503a47c3b4c54f19a",
        "ran_at": "2026-07-26T05:19:59Z",
        "aggregate_score": 5.3,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-26T03:18:11Z",
      "oldest_open_prs": [
        {
          "number": 677,
          "created_at": "2026-04-02T14:23:55Z",
          "last_comment_at": "2026-04-02T14:24:00Z",
          "last_comment_author": "copy-pr-bot"
        },
        {
          "number": 751,
          "created_at": "2026-04-14T05:27:46Z",
          "last_comment_at": "2026-04-22T14:21:38Z",
          "last_comment_author": "joshuayao"
        },
        {
          "number": 878,
          "created_at": "2026-04-20T04:19:45Z",
          "last_comment_at": "2026-04-20T04:24:24Z",
          "last_comment_author": "coderabbitai"
        },
        {
          "number": 968,
          "created_at": "2026-05-01T07:33:46Z",
          "last_comment_at": "2026-05-06T21:31:03Z",
          "last_comment_author": "jasonqinzhou"
        },
        {
          "number": 1133,
          "created_at": "2026-05-20T17:30:43Z",
          "last_comment_at": "2026-05-20T17:30:47Z",
          "last_comment_author": "copy-pr-bot"
        },
        {
          "number": 1288,
          "created_at": "2026-07-02T05:06:46Z",
          "last_comment_at": "2026-07-13T16:21:58Z",
          "last_comment_author": "tianhaox"
        },
        {
          "number": 1312,
          "created_at": "2026-07-06T06:04:59Z",
          "last_comment_at": "2026-07-06T06:37:32Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 1314,
          "created_at": "2026-07-06T14:37:24Z",
          "last_comment_at": "2026-07-06T15:10:11Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 1316,
          "created_at": "2026-07-06T20:49:10Z",
          "last_comment_at": "2026-07-06T21:22:33Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 1323,
          "created_at": "2026-07-07T02:50:07Z",
          "last_comment_at": "2026-07-23T03:37:58Z",
          "last_comment_author": "jieliu1997"
        },
        {
          "number": 1340,
          "created_at": "2026-07-10T09:45:20Z",
          "last_comment_at": "2026-07-10T10:12:41Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 1349,
          "created_at": "2026-07-13T16:17:09Z",
          "last_comment_at": "2026-07-25T07:04:29Z",
          "last_comment_author": "tianhaox"
        },
        {
          "number": 1350,
          "created_at": "2026-07-13T16:44:14Z",
          "last_comment_at": "2026-07-13T16:44:42Z",
          "last_comment_author": "coderabbitai"
        },
        {
          "number": 1352,
          "created_at": "2026-07-14T02:11:57Z",
          "last_comment_at": "2026-07-25T10:29:39Z",
          "last_comment_author": "tianhaox"
        },
        {
          "number": 1353,
          "created_at": "2026-07-14T03:22:32Z",
          "last_comment_at": "2026-07-14T03:22:54Z",
          "last_comment_author": "coderabbitai"
        },
        {
          "number": 1356,
          "created_at": "2026-07-14T12:00:35Z",
          "last_comment_at": "2026-07-25T14:03:24Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 1365,
          "created_at": "2026-07-14T23:06:55Z",
          "last_comment_at": "2026-07-14T23:07:20Z",
          "last_comment_author": "coderabbitai"
        },
        {
          "number": 1369,
          "created_at": "2026-07-15T08:06:11Z",
          "last_comment_at": "2026-07-22T03:21:43Z",
          "last_comment_author": "coderabbitai"
        },
        {
          "number": 1380,
          "created_at": "2026-07-17T16:16:59Z",
          "last_comment_at": "2026-07-17T16:17:42Z",
          "last_comment_author": "coderabbitai"
        },
        {
          "number": 1381,
          "created_at": "2026-07-17T16:44:18Z",
          "last_comment_at": "2026-07-17T16:44:50Z",
          "last_comment_author": "coderabbitai"
        }
      ],
      "last_merged_pr_at": "2026-07-25T12:53:01Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 102,
          "created_at": "2025-11-11T05:10:47Z",
          "last_comment_at": "2026-04-16T07:52:01Z",
          "last_comment_author": "wushengtzy"
        },
        {
          "number": 250,
          "created_at": "2026-01-15T18:46:20Z",
          "last_comment_at": "2026-01-16T00:54:48Z",
          "last_comment_author": "Arsene12358"
        },
        {
          "number": 312,
          "created_at": "2026-01-30T06:12:47Z",
          "last_comment_at": "2026-02-02T03:08:51Z",
          "last_comment_author": "deltaguo"
        },
        {
          "number": 328,
          "created_at": "2026-02-03T11:52:26Z",
          "last_comment_at": "2026-02-06T10:07:56Z",
          "last_comment_author": "tianhaox"
        },
        {
          "number": 486,
          "created_at": "2026-03-02T10:06:10Z",
          "last_comment_at": "2026-03-06T13:39:11Z",
          "last_comment_author": "MADHURIMA-VARIKUTI"
        },
        {
          "number": 581,
          "created_at": "2026-03-12T03:37:55Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 601,
          "created_at": "2026-03-17T15:28:15Z",
          "last_comment_at": "2026-03-22T16:17:52Z",
          "last_comment_author": "Arsene12358"
        },
        {
          "number": 654,
          "created_at": "2026-03-25T21:15:56Z",
          "last_comment_at": "2026-06-11T22:27:51Z",
          "last_comment_author": "waynehacking8"
        },
        {
          "number": 661,
          "created_at": "2026-03-30T02:41:34Z",
          "last_comment_at": "2026-04-09T07:13:28Z",
          "last_comment_author": "IEI-mjx"
        },
        {
          "number": 676,
          "created_at": "2026-04-02T13:37:04Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 725,
          "created_at": "2026-04-10T13:35:01Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 888,
          "created_at": "2026-04-22T07:00:25Z",
          "last_comment_at": "2026-07-10T14:05:38Z",
          "last_comment_author": "LPhgh"
        },
        {
          "number": 901,
          "created_at": "2026-04-23T20:38:52Z",
          "last_comment_at": "2026-06-23T12:08:27Z",
          "last_comment_author": "tianhaox"
        },
        {
          "number": 1053,
          "created_at": "2026-05-12T09:23:39Z",
          "last_comment_at": "2026-06-23T10:17:30Z",
          "last_comment_author": "tianhaox"
        },
        {
          "number": 1081,
          "created_at": "2026-05-14T16:54:39Z",
          "last_comment_at": "2026-05-14T17:08:02Z",
          "last_comment_author": "BenHamm"
        },
        {
          "number": 1125,
          "created_at": "2026-05-18T01:38:02Z",
          "last_comment_at": "2026-05-21T08:21:30Z",
          "last_comment_author": "Ethan-ES"
        },
        {
          "number": 1148,
          "created_at": "2026-05-27T03:19:47Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1159,
          "created_at": "2026-05-28T22:15:48Z",
          "last_comment_at": "2026-07-02T21:17:25Z",
          "last_comment_author": "mcgrof"
        },
        {
          "number": 1205,
          "created_at": "2026-06-05T07:16:15Z",
          "last_comment_at": "2026-06-11T11:30:19Z",
          "last_comment_author": "Arsene12358"
        },
        {
          "number": 1208,
          "created_at": "2026-06-05T21:07:39Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/ai-dynamo/aiconfigurator",
    "host": "github.com",
    "name": "aiconfigurator",
    "owner": "ai-dynamo"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 82,
      "inputs": {
        "security": 62,
        "vitality": 98,
        "community": 77,
        "governance": 79,
        "engineering": 86
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 98,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 97,
            "inputs": {
              "commits_last_year": 744,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 48
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "48/52 weeks with commits",
                "points": 33.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 48
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "744 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 744
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 0 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": 12,
              "latest_release_tag": "v0.10.0",
              "releases_from_tags": false,
              "days_since_latest_release": 10,
              "mean_days_between_releases": 33.3
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "12 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 12
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 10 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 10
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~33.3 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 33.3
                    }
                  }
                ],
                "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": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 0,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 0 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "good",
        "name": "Community & Adoption",
        "value": 77,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 64,
            "inputs": {
              "forks": 141,
              "stars": 374,
              "watchers": 7,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "374 stars",
                "points": 41.7,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 374
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "141 forks",
                "points": 17.9,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 141
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "7 watchers",
                "points": 4.3,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (Apache-2.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "Apache-2.0"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "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": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "good",
        "name": "Sustainability & Governance",
        "value": 79,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "excellent",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 88,
            "inputs": {
              "bus_factor": 5,
              "contributors_sampled": 60,
              "top_contributor_share": 0.156
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "5 contributor(s) cover half of all commits",
                "points": 45.9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 16% of commits",
                "points": 19,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 16
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "60 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 60
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 9 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "moderate",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 67,
            "inputs": {
              "merged_prs": 1031,
              "open_issues": 44,
              "closed_issues": 39,
              "issue_closed_ratio": 0.47,
              "closed_unmerged_prs": 273
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "47% of issues closed",
                "points": 22,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 47
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "1031/1304 decided PRs merged",
                "points": 30.2,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 1031,
                      "decided": 1304
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "all changesets reviewed",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 62,
            "inputs": {
              "followers": 738,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "ai-dynamo",
              "public_repos": 15,
              "account_age_days": 509
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "738 followers of ai-dynamo",
                "points": 20.6,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 738,
                      "login": "ai-dynamo"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "15 public repos, account ~1 yr old",
                "points": 11.6,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 15
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 1
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "aiconfigurator"
              ],
              "ecosystems": "pypi",
              "any_deprecated": false,
              "min_days_since_publish": 10
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on pypi",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "pypi"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 10 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 10
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "13 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 13
                    }
                  }
                ],
                "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": "excellent",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 94,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": true
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "18 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 18
                    }
                  }
                ],
                "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": "eslint.config.js",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "eslint.config.js"
                    }
                  }
                ],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 9.6,
                "status": "met",
                "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": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "good",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": null,
              "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": null,
                "points": 0,
                "status": "missed",
                "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": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 62,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 53,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 5.3
            },
            "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 is not maximal on development and all release branches",
                "points": 3.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "30 out of 30 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": "all changesets reviewed",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 9 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "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.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 0 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 not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 1",
                "points": 0.5,
                "status": "partial",
                "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": "28 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the pypi:aiconfigurator@0.10.0 runtime dependency closure — what installing the published package pulls in — 35 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "pypi:aiconfigurator@0.10.0",
                  "assessed": 35
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 35,
              "unassessed_packages": 0,
              "affected_by_severity": "none",
              "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": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "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": 35,
              "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": "good",
        "name": "AI Readiness",
        "value": 75,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "agent_instruction_files": [
                "AGENTS.md"
              ],
              "agent_instruction_max_bytes": 3663
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.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": "100 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 100,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "good",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 78,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "Cargo.lock",
                "uv.lock"
              ],
              "has_dockerfile": true,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "aic-core/src/aiconfigurator_core/py.typed"
              ],
              "agent_commit_share": 0.57,
              "toolchain_manifests": [
                "Cargo.toml",
                "aic-core/rust/aiconfigurator-core/Cargo.toml",
                "aic-core/rust/tests/public-api/Cargo.toml"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Cargo.toml, aic-core/rust/aiconfigurator-core/Cargo.toml, aic-core/rust/tests/public-api/Cargo.toml (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "Cargo.toml, aic-core/rust/aiconfigurator-core/Cargo.toml, aic-core/rust/tests/public-api/Cargo.toml"
                    }
                  }
                ],
                "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": "eslint.config.js",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "eslint.config.js"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "aic-core/src/aiconfigurator_core/py.typed",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "aic-core/src/aiconfigurator_core/py.typed"
                    }
                  }
                ],
                "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": "57 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 57,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 1",
                "points": 1,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "good",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "primary_language": "Python",
              "largest_source_bytes": 146909,
              "source_files_sampled": 549,
              "oversized_source_files": 23
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Python with type-check config (aic-core/src/aiconfigurator_core/py.typed)",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "typecheck_config_language",
                    "params": {
                      "files": "aic-core/src/aiconfigurator_core/py.typed",
                      "language": "Python"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "23/549 source files over 60KB",
                "points": 52.7,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 549,
                      "oversized": 23
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "notebooks"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "notebooks",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "notebooks"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "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 pypi package 'aiconfigurator-core' from its registry"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-26T05:21:03.056809Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/a/ai-dynamo/aiconfigurator.svg",
  "full_name": "ai-dynamo/aiconfigurator",
  "license_state": "standard",
  "license_spdx": "Apache-2.0"
}

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 agregadasPyPI.