Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 1.13.0 · 2026-07-31 04:51 UTC

wrmsr / om

My python monorepo.

PythonBSD-3-Clause★ 7 estrellas⑂ 0 forksdesde abr 2023Ver en GitHub ↗

wrmsr/om tiene un índice de salud de 48 sobre 100, lo que lo sitúa en la banda En riesgo. Su puntuación más alta es AI Readiness (77/100) y la más baja, Security (21/100). Se actualizó por última vez hoy. Una sola persona concentra la mayor parte del trabajo reciente.

48
global / 100
En riesgo

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

48
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

wrmsrCuenta personal
92 seguidores240 repositorios públicosdesde ene 2011

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

Ecosistemas de paquetes

RegistroPaqueteVersiónDescargas / mesVersionesÚltima publicación
PyPIomdev0.0.352758585hace 0 días
PyPIomllm0.0.35-9hace 0 días
PyPIomcore0.0.358048hace 0 días
PyPIomxtra0.0.35-69hace 0 días
PyPIominfra0.0.352516585hace 0 días

Métricas por categoría

Vitalidad

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

60Moderado · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 0 días
35.3/36Cadencia de commits — 51/52 semanas con commits
18/18Volumen de commits — 4075 commits en el último año
0/10OpenSSF Scorecard: Maintained — sin datos
Datos de entrada utilizados
commits_last_year4075
human_commit_share1
days_since_last_push0
active_weeks_last_year51
Cómo se puntúa
0/27Publica versiones — sin versiones publicadas
0/36Recencia de las versiones — sin versiones
0/27Cadencia de publicación — sin versiones
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count0

Comunidad y Adopción

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

38En riesgo · 18% del índice global
Cómo se puntúa
12.6/60Estrellas — 7 estrellas
0/25Forks — 0 forks
0/15Observadores — 1 observadores
Datos de entrada utilizados
forks0
stars7
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
22.5/22.5README
22.5/22.5Licencia — licencia reconocida (BSD-3-Clause)
0/18Guía CONTRIBUTING
0/13.5Código de conducta
0/7.2Plantilla de issues
0/6.3Plantilla de PR
Datos de entrada utilizados
has_readme
has_license
has_contributingno
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno
Cómo se puntúa
50.5/80Descargas mensuales — 6078 descargas/mes en pypi
0/20Dependientes en el registro — no lo informa este ecosistema
Datos de entrada utilizados
packagesomdev, omllm, omcore, omxtra, ominfra
dependents
ecosystemspypi
total_downloads
monthly_downloads6078
Excluidos de la puntuación (sin datos o no aplicable): Dependientes en el registro. Los pesos restantes se han renormalizado.

Sostenibilidad y Gobernanza

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

52Moderado · 24% del índice global
Cómo se puntúa
9/54Factor bus — la mitad de los commits recae en 1 contribuyente(s)
0/22.5Distribución de commits — el principal contribuyente firma el 100% de los commits
1.4/13.5Amplitud de contribuyentes — 1 contribuyentes
0/10OpenSSF Scorecard: Contributors — sin datos
Datos de entrada utilizados
bus_factor1
contributors_sampled1
top_contributor_share1
Cómo se puntúa
10/30Respaldo de la propiedad — cuenta personal (usuario)
0/20Dominio verificado — no aplicable a cuentas de usuario
14.2/25Alcance del propietario — 92 seguidores de wrmsr
25/25Trayectoria — 240 repos públicos, cuenta de ~15 años
Datos de entrada utilizados
followers92
owner_typeUser
is_verified
owner_loginwrmsr
public_repos240
account_age_days5678
Excluidos de la puntuación (sin datos o no aplicable): Dominio verificado. Los pesos restantes se han renormalizado.
Cómo se puntúa
25/25Publicado y resoluble — 5 paquete(s) en pypi
35/35Recencia de publicación — última publicación hace 0 días
20/20Historial de versiones — 585 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packagesomdev, omllm, omcore, omxtra, ominfra
ecosystemspypi
any_deprecatedno
min_days_since_publish0

Calidad de Ingeniería

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

61Moderado · 20% del índice global
Cómo se puntúa
24/24Flujos de trabajo de CI — 1 flujo(s) de trabajo
24/24Pruebas presentes
0/16Configuración de linter
0/9.6Hooks de pre-commit
6.4/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — sin datos
Datos de entrada utilizados
has_ci
has_tests
has_editorconfig
has_linter_configno
has_precommit_configno

Documentación

50Moderado
Cómo se puntúa
30/30README
0/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_dirno
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?

21Crítico · 16% del índice global
Cómo se puntúa
0/30Política de seguridad (SECURITY.md)
0/25Configuración de Dependabot
0/25Lockfiles de dependencias — biblioteca publicada — los lockfiles son cosa de las aplicaciones, no se esperan aquí
0/20Flujo de trabajo de CodeQL
Datos de entrada utilizados
sourcefile_signals
lockfilesCargo.lock
manifestspyproject.toml, requirements-ci.txt, requirements-dev.txt, requirements-ext.txt, requirements-frz.txt, requirements.txt
has_codeql_workflowno
has_security_policyno
has_dependabot_configno
Excluidos de la puntuación (sin datos o no aplicable): Lockfiles de dependencias. Los pesos restantes se han renormalizado.
Cómo se puntúa
35/35Dependencias directas libres de avisos conocidos — ninguna dependencia directa tiene un aviso conocido
0/25Dependencias indirectas libres de avisos conocidos — el conjunto transitivo no es separable de las dependencias de desarrollo y prueba en este alcance
0/40Sin avisos pendientes — ningún aviso tiene fecha de publicación
Datos de entrada utilizados
sourceosv
advisories9
affected_packages4
assessed_packages371
unassessed_packages69
affected_by_severityhigh 1, moderate 2, unknown 1
direct_affected_packages0
Excluidos de la puntuación (sin datos o no aplicable): Dependencias indirectas libres de avisos conocidos, Sin avisos pendientes. Los pesos restantes se han renormalizado. Se cotejaron 371 dependencias resueltas con OSV. 69 no pudieron evaluarse: sin versión resuelta, ecosistema no admitido o fuera de la lista de paquetes informada. Este repositorio no publica ningún paquete que el índice resuelva, por lo que se evaluó en su lugar el grafo de dependencias del repositorio. Ese grafo mezcla fijaciones de desarrollo y prueba con las dependencias distribuidas, de modo que solo se puntúan las dependencias declaradas en tiempo de ejecución; los hallazgos transitivos se informan como contexto y quedan excluidos de la puntuación. No se analiza la alcanzabilidad.

Preparación para IA

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

77Bueno · 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 — 90 de 100 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share0,9
agent_instruction_filesAGENTS.md
agent_instruction_max_bytes3068
Cómo se puntúa
18/18Arranque con un solo comando — Makefile, omdev/pyproject/tests/skeleton/Makefile
22/22Pruebas automatizadas
0/11Configuración de lint / formato
11/11Verificación estática de tipos — omcore/py.typed, omdev/py.typed, ominfra/py.typed, omllm/py.typed, omxtra/py.typed, x/pipdeptree/py.typed
10/10Entorno reproducible — Dockerfile, lockfile
0/10Práctica demostrada con agentes — ningún commit con autoría de agente entre los últimos 100
0/8Mantenimiento automatizado — no se observan actualizaciones automáticas de dependencias
0/10OpenSSF Scorecard: Pinned-Dependencies — sin datos
Datos de entrada utilizados
has_nixno
has_tests
lockfilesCargo.lock
has_dockerfile
typed_languageno
bootstrap_filesMakefile, omdev/pyproject/tests/skeleton/Makefile
has_devcontainerno
has_linter_configno
typecheck_configsomcore/py.typed, omdev/py.typed, ominfra/py.typed, omllm/py.typed, omxtra/py.typed, x/pipdeptree/py.typed
agent_commit_share0
toolchain_manifestsomdev/rs/_boilerplate/Cargo.toml, x/ommlds/nanochat/rustbpe/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 (omcore/py.typed, omdev/py.typed, ominfra/py.typed, omllm/py.typed, omxtra/py.typed, x/pipdeptree/py.typed)
54.3/55Tamaños de archivo manejables — 61/4878 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languagePython
largest_source_bytes1.397.928
source_files_sampled4878
oversized_source_files61
Cómo se puntúa
40/40Esquema de API (OpenAPI/GraphQL/proto) — omxtra/specs/proto/tests/examples/addressbook.proto
0/20Servidor MCP
40/40Ejemplos ejecutables — demos, examples, notebooks, samples
Datos de entrada utilizados
example_dirsdemos, examples, notebooks, samples
has_mcp_signalno
api_schema_filesomxtra/specs/proto/tests/examples/addressbook.proto

Datos clave

7estrellas de GitHub
1contribuidores
4075commits en los últimos 12 meses
0días desde el último push
0versiones publicadas
1factor bus
0issues abiertas
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 'omdev.cexts._boilerplate' from its registry
  • Could not fetch pypi package 'omcore._check' from its registry
  • Could not fetch pypi package 'omxtra.collections.stl._stl' from its registry
  • deps.dev does not index pypi:omdev@0.0.35; advisories assessed against the repository dependency graph instead
  • OpenSSF Scorecard did not return a usable result (2026/07/31 04:51:10 Warning: PATs stored in env variables GITHUB_AUTH_TOKEN and GITHUB_TOKEN differ. Scorecard will use the former.); skipping Scorecard checks

Más detalle

Dependencias directas 9
RegistroPaqueteRestricción de versiónManifiesto
PyPIomcore== 0.0.36.pkg/omcore-cext/pyproject.toml
PyPIomdev== 0.0.36.pkg/omdev-cext/pyproject.toml
PyPIomdev== 0.0.36.pkg/omdev-cli/pyproject.toml
PyPIomdev== 0.0.36.pkg/omdev-rs/pyproject.toml
PyPIomcore== 0.0.36.pkg/omdev/pyproject.toml
PyPIomcore== 0.0.36.pkg/ominfra/pyproject.toml
PyPIomcore== 0.0.36.pkg/omllm/pyproject.toml
PyPIomxtra== 0.0.36.pkg/omxtra-cext/pyproject.toml
PyPIomcore== 0.0.36.pkg/omxtra/pyproject.toml
Todas las dependencias 440

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

RegistroPaqueteVersiónRelación
PyPIomcore0.0.36directa
PyPIomdev0.0.36directa
PyPIomxtra0.0.36directa
crates.ioahash0.8.12indirecta
crates.ioaho-corasick1.1.4indirecta
crates.ioarc-swap1.8.2indirecta
crates.ioautocfg1.5.0indirecta
crates.iobit-set0.8.0indirecta
crates.iobit-vec0.8.0indirecta
crates.iocastaway0.2.4indirecta
crates.iocfg-if1.0.4indirecta
crates.iocompact_str0.9.0indirecta
crates.iocrossbeam-deque0.8.6indirecta
crates.iocrossbeam-epoch0.9.18indirecta
crates.iocrossbeam-utils0.8.21indirecta
crates.iodary_heap0.3.8indirecta
crates.ioeither1.15.0indirecta
crates.ioequivalent1.0.2indirecta
crates.iofancy-regex0.16.2indirecta
crates.iogetrandom0.3.4indirecta
crates.iohashbrown0.17.0indirecta
crates.ioheck0.5.0indirecta
crates.ioindexmap2.14.0indirecta
crates.ioindoc2.0.7indirecta
crates.ioitoa1.0.15indirecta
crates.iolibc0.2.184indirecta
crates.iolibc0.2.188indirecta
crates.iolog0.4.29indirecta
crates.iomemchr2.7.6indirecta
crates.iomemoffset0.9.1indirecta
crates.ioonce_cell1.21.4indirecta
crates.ioportable-atomic1.13.1indirecta
crates.ioportable-atomic1.14.0indirecta
crates.ioproc-macro21.0.106indirecta
crates.ioproc-macro21.0.107indirecta
crates.iopyo30.27.2indirecta
crates.iopyo30.29.0indirecta
crates.iopyo3-build-config0.27.2indirecta
crates.iopyo3-build-config0.29.0indirecta
crates.iopyo3-ffi0.27.2indirecta
crates.iopyo3-ffi0.29.0indirecta
crates.iopyo3-log0.13.3indirecta
crates.iopyo3-macros0.27.2indirecta
crates.iopyo3-macros0.29.0indirecta
crates.iopyo3-macros-backend0.27.2indirecta
crates.iopyo3-macros-backend0.29.0indirecta
crates.ioquote1.0.45indirecta
crates.ioquote1.0.47indirecta
crates.ior-efi5.3.0indirecta
crates.iorayon1.12.0indirecta
crates.iorayon-core1.13.0indirecta
crates.ioregex-automata0.4.13indirecta
crates.ioregex-syntax0.8.8indirecta
crates.iorustversion1.0.22indirecta
crates.ioryu1.0.20indirecta
crates.iostatic_assertions1.1.0indirecta
crates.iosyn2.0.117indirecta
crates.iosyn2.0.119indirecta
crates.iotarget-lexicon0.13.5indirecta
crates.iounicode-ident1.0.24indirecta
crates.iounindent0.2.4indirecta
crates.ioversion_check0.9.5indirecta
crates.iowasip21.0.1+wasi-0.2.4indirecta
crates.iowit-bindgen0.46.0indirecta
crates.iozerocopy0.8.27indirecta
crates.iozerocopy-derive0.8.27indirecta
PyPIaiohappyeyeballs2.7.1indirecta
PyPIaiohttp3.14.3indirecta
PyPIaiohttp-jinja21.6indirecta
PyPIaiomysqlindirecta
PyPIaiomysql0.3.2indirecta
PyPIaiosignal1.4.0indirecta
PyPIaiosqliteindirecta
PyPIaiosqlite0.22.1indirecta
PyPIannotated-doc0.0.5indirecta
PyPIantlr4-python3-runtime4.13.2indirecta
PyPIanyioindirecta
PyPIanyio4.14.2indirecta
PyPIanyio4.8.0indirecta
PyPIapswindirecta
PyPIapsw3.53.4.0indirecta
PyPIasgiref3.12.1indirecta
PyPIasn1crypto1.5.1indirecta
PyPIast-serialize0.6.0indirecta
PyPIastpretty3.0.0indirecta
PyPIasttokensindirecta
PyPIasttokens3.0.2indirecta
PyPIasyncpgindirecta
PyPIasyncpg0.30.0indirecta
PyPIasyncpg0.31.0indirecta
PyPIasyncpg-stubs0.31.3indirecta
PyPIasyncsshindirecta
PyPIasyncssh2.24.0indirecta
PyPIattrs26.1.0indirecta
PyPIbasedpyright1.39.9indirecta
PyPIbcrypt5.0.0indirecta
PyPIbitsandbytes0.50.0indirecta
PyPIblackindirecta
PyPIblack26.5.1indirecta
PyPIblobfile3.2.0indirecta
PyPIboto31.43.60indirecta
PyPIbotocore1.43.60indirecta
PyPIbotocore-stubs1.43.14indirecta
PyPIbrotliindirecta
PyPIbrotli1.2.0indirecta
PyPIbuildindirecta
PyPIbuild1.5.0indirecta
PyPIcbor2indirecta
PyPIcbor26.1.3indirecta
PyPIcertifi2026.7.22indirecta
PyPIcffi2.1.0indirecta
PyPIcharset-normalizer3.4.9indirecta
PyPIclick8.4.2indirecta
PyPIcloudpickleindirecta
PyPIcloudpickle3.1.2indirecta
PyPIcontourpy1.3.3indirecta
PyPIcramjam2.11.0indirecta
PyPIcryptographyindirecta
PyPIcryptography49.0.0indirecta
PyPIcycler0.12.1indirecta
PyPIcython3.2.9indirecta
PyPIdatasets5.0.0indirecta
PyPIddgs9.14.4indirecta
PyPIdebugpy1.8.21indirecta
PyPIdecorator5.3.1indirecta
PyPIdeno2.9.4indirecta
PyPIdiffusers0.39.0indirecta
PyPIdill0.4.1indirecta
PyPIdiskcache5.6.3indirecta
PyPIdocutilsindirecta
PyPIdocutils0.23indirecta
PyPIdocutils-stubs0.0.22indirecta
PyPIduckdbindirecta
PyPIduckdb1.5.5indirecta
PyPIexecnet2.1.2indirecta
PyPIexecutingindirecta
PyPIexecuting2.2.1indirecta
PyPIfake-useragent2.2.0indirecta
PyPIfilelock3.32.2indirecta
PyPIflake87.3.0indirecta
PyPIflake8-pyproject1.2.4indirecta
PyPIflatbuffers25.12.19indirecta
PyPIfonttools4.63.0indirecta
PyPIfrozenlist1.8.0indirecta
PyPIfsspec2026.4.0indirecta
PyPIgguf0.19.0indirecta
PyPIgoogle-api-core2.33.0indirecta
PyPIgoogle-api-python-client2.198.0indirecta
PyPIgoogle-auth2.56.2indirecta
PyPIgoogle-auth-httplib20.4.0indirecta
PyPIgoogle-cloud-compute1.50.0indirecta
PyPIgoogleapis-common-protos1.75.0indirecta
PyPIgprof2dotindirecta
PyPIgprof2dot2025.4.14indirecta
PyPIgreenletindirecta
PyPIgreenlet3.5.4indirecta
PyPIgrpcio1.83.0indirecta
PyPIgrpcio-status1.83.0indirecta
PyPIguppy33.1.7indirecta
PyPIh110.16.0indirecta
PyPIh24.4.0indirecta
PyPIhf-xet1.5.2indirecta
PyPIhpack4.2.0indirecta
PyPIhttpcore1.0.9indirecta
PyPIhttplib20.32.0indirecta
PyPIhttpxindirecta
PyPIhttpx0.28.1indirecta
PyPIhuggingface-hubindirecta
PyPIhuggingface-hub1.24.0indirecta
PyPIhyperframe6.1.0indirecta
PyPIid1.6.1indirecta
PyPIidna3.18indirecta
PyPIimageio2.37.4indirecta
PyPIimportlib-metadata9.0.0indirecta
PyPIiniconfig2.3.0indirecta
PyPIinvoke3.0.3indirecta
PyPIipythonindirecta
PyPIipython9.15.0indirecta
PyPIipython-pygments-lexers1.1.1indirecta
PyPIjaraco-classes3.4.0indirecta
PyPIjaraco-context6.1.2indirecta
PyPIjaraco-functools4.6.0indirecta
PyPIjedi0.20.0indirecta
PyPIjinja2indirecta
PyPIjinja23.1.6indirecta
PyPIjmespath1.1.0indirecta
PyPIjoblib1.5.3indirecta
PyPIjson50.15.0indirecta
PyPIkeyring25.7.0indirecta
PyPIkiwisolver1.5.0indirecta
PyPIlazy-loader0.5indirecta
PyPIlibrt0.13.0indirecta
PyPIlinkify-it-py2.1.0indirecta
PyPIllama-cpp-pythonindirecta
PyPIllama-cpp-python0.3.34indirecta
PyPIlxml6.1.1indirecta
PyPIlxml-stubs0.5.1indirecta
PyPIlz4indirecta
PyPIlz44.4.5indirecta
PyPImarkdown-it-pyindirecta
PyPImarkdown-it-py4.2.0indirecta
PyPImarkupsafeindirecta
PyPImarkupsafe3.0.3indirecta
PyPImatplotlib3.11.1indirecta
PyPImatplotlib-inline0.2.2indirecta
PyPImccabe0.7.0indirecta
PyPImdit-py-pluginsindirecta
PyPImdit-py-plugins0.6.1indirecta
PyPImdurl0.1.2indirecta
PyPImemrayindirecta
PyPImemray1.19.3indirecta
PyPImlxindirecta
PyPImlx0.32.0indirecta
PyPImlx-lmindirecta
PyPImlx-lm0.31.3indirecta
PyPImlx-metal0.32.0indirecta
PyPImore-itertools11.1.0indirecta
PyPImpmath1.3.0indirecta
PyPImsgpack1.2.1indirecta
PyPImultidict6.7.1indirecta
PyPImultiprocess0.70.19indirecta
PyPImwparserfromhellindirecta
PyPImwparserfromhell0.7.2indirecta
PyPImypyindirecta
PyPImypy2.3.0indirecta
PyPImypy-extensions1.1.0indirecta
PyPImysql-connector-pythonindirecta
PyPImysql-connector-python9.7.0indirecta
PyPImysqlclientindirecta
PyPImysqlclient2.2.8indirecta
PyPInarwhals2.24.0indirecta
PyPInetworkx3.6.1indirecta
PyPInh30.3.6indirecta
PyPInodeenv1.10.0indirecta
PyPInodejs-wheel-binaries24.16.0indirecta
PyPInumpy2.5.1indirecta
PyPIobjgraph3.6.2indirecta
PyPIominfra0.0.36indirecta
PyPIomllm0.0.36indirecta
PyPIonnxruntime1.28.0indirecta
PyPIopencv-python5.0.0.93indirecta
PyPIorjsonindirecta
PyPIorjson3.11.9indirecta
PyPIoutcome1.3.0.post0indirecta
PyPIpackaging26.2indirecta
PyPIpandas3.0.5indirecta
PyPIparamikoindirecta
PyPIparamiko5.0.0indirecta
PyPIparso0.8.7indirecta
PyPIpathspec1.1.1indirecta
PyPIpcppindirecta
PyPIpcpp1.30indirecta
PyPIpexpect4.9.0indirecta
PyPIpg8000indirecta
PyPIpg80001.31.5indirecta
PyPIpillowindirecta
PyPIpillow12.3.0indirecta
PyPIplatformdirs4.11.0indirecta
PyPIplaywright1.61.0indirecta
PyPIpluggy1.6.0indirecta
PyPIpprintpp0.4.0indirecta
PyPIprimp1.3.1indirecta
PyPIpriority2.0.0indirecta
PyPIprompt-toolkit3.0.53indirecta
PyPIpropcache0.5.2indirecta
PyPIproto-plus1.28.2indirecta
PyPIprotobuf7.35.1indirecta
PyPIpsutilindirecta
PyPIpsutil7.2.2indirecta
PyPIpsycopgindirecta
PyPIpsycopg3.3.4indirecta
PyPIpsycopg2indirecta
PyPIpsycopg22.9.12indirecta
PyPIptyprocess0.7.0indirecta
PyPIpudb2025.1.5indirecta
PyPIpure-eval0.2.3indirecta
PyPIpy-cpuinfo9.0.0indirecta
PyPIpyarrow25.0.0indirecta
PyPIpyasn10.6.4indirecta
PyPIpyasn1-modules0.4.2indirecta
PyPIpyclipper1.4.0indirecta
PyPIpycodestyle2.14.0indirecta
PyPIpycparserindirecta
PyPIpycparser3.0indirecta
PyPIpycryptodomex3.23.0indirecta
PyPIpydantic-monty0.0.19indirecta
PyPIpydantic-monty-runtime0.0.19indirecta
PyPIpyee13.0.1indirecta
PyPIpyflakes3.4.0indirecta
PyPIpygmentsindirecta
PyPIpygments2.20.0indirecta
PyPIpyinstrument5.1.2indirecta
PyPIpyjwt2.13.0indirecta
PyPIpymysqlindirecta
PyPIpymysql1.2.0indirecta
PyPIpynacl1.6.2indirecta
PyPIpyopenssl26.3.0indirecta
PyPIpyparsing3.3.2indirecta
PyPIpyproject-hooks1.2.0indirecta
PyPIpyright1.1.411indirecta
PyPIpytesseractindirecta
PyPIpytesseract0.3.13indirecta
PyPIpytestindirecta
PyPIpytest8.3.4indirecta
PyPIpytest9.1.1indirecta
PyPIpytest-benchmark5.2.3indirecta
PyPIpytest-clarity1.0.1indirecta
PyPIpytest-mock3.15.1indirecta
PyPIpytest-stress1.0.1indirecta
PyPIpytest-subprocess1.6.0indirecta
PyPIpytest-timeout2.4.0indirecta
PyPIpytest-xdist3.8.0indirecta
PyPIpython-dateutil2.9.0.post0indirecta
PyPIpython-snappyindirecta
PyPIpython-snappy0.7.3indirecta
PyPIpytokens0.4.1indirecta
PyPIpytz2026.3.post1indirecta
PyPIpyyamlindirecta
PyPIpyyaml6.0.2indirecta
PyPIpyyaml6.0.3indirecta
PyPIrapidocr-onnxruntimeindirecta
PyPIrapidocr-onnxruntime1.4.4indirecta
PyPIreadme-renderer45.0indirecta
PyPIregex2026.7.19indirecta
PyPIrequests2.34.2indirecta
PyPIrequests-toolbelt1.0.0indirecta
PyPIrfc39862.0.0indirecta
PyPIrichindirecta
PyPIrich15.0.0indirecta
PyPIripgrep15.1.0indirecta
PyPIruff0.16.0indirecta
PyPIs3transfer0.19.2indirecta
PyPIsafetensors0.8.0indirecta
PyPIscikit-image0.26.0indirecta
PyPIscikit-learn1.9.0indirecta
PyPIscipy1.18.0indirecta
PyPIscramp1.4.15indirecta
PyPIsegnoindirecta
PyPIsegno1.6.6indirecta
PyPIsentence-transformers5.6.0indirecta
PyPIsentencepiece0.2.2indirecta
PyPIsetuptools83.0.0indirecta
PyPIshapely2.1.2indirecta
PyPIshellingham1.5.4indirecta
PyPIsix1.17.0indirecta
PyPIsniffioindirecta
PyPIsniffio1.3.1indirecta
PyPIsnowflake-connector-pythonindirecta
PyPIsnowflake-connector-python4.7.1indirecta
PyPIsocksio1.0.0indirecta
PyPIsortedcontainers2.4.0indirecta
PyPIsqlalchemyindirecta
PyPIsqlalchemy2.0.51indirecta
PyPIsqlean-pyindirecta
PyPIsqlean-py3.50.4.5indirecta
PyPIsqlite-vec0.1.9indirecta
PyPIstack-data0.6.3indirecta
PyPIsympy1.14.0indirecta
PyPItavily-python0.7.26indirecta
PyPItextualindirecta
PyPItextual8.2.8indirecta
PyPItextual-devindirecta
PyPItextual-dev1.8.0indirecta
PyPItextual-serve1.1.3indirecta
PyPItextual-speedupsindirecta
PyPItextual-speedups0.2.1indirecta
PyPIthreadpoolctl3.6.0indirecta
PyPItifffile2026.7.14indirecta
PyPItiktoken0.13.0indirecta
PyPItinygradindirecta
PyPItokenizers0.22.2indirecta
PyPItomlkit0.15.1indirecta
PyPItorchindirecta
PyPItorch2.13.0indirecta
PyPItorchvision0.28.0indirecta
PyPItqdm4.70.0indirecta
PyPItraitlets5.15.1indirecta
PyPItransformersindirecta
PyPItransformers5.11.0indirecta
PyPItree-sitter0.26.0indirecta
PyPItree-sitter-bash0.25.1indirecta
PyPItree-sitter-css0.25.0indirecta
PyPItree-sitter-go0.25.0indirecta
PyPItree-sitter-html0.23.2indirecta
PyPItree-sitter-java0.23.5indirecta
PyPItree-sitter-javascript0.25.0indirecta
PyPItree-sitter-json0.24.8indirecta
PyPItree-sitter-markdown0.5.1indirecta
PyPItree-sitter-python0.25.0indirecta
PyPItree-sitter-regex0.25.0indirecta
PyPItree-sitter-rust0.24.2indirecta
PyPItree-sitter-sql0.3.11indirecta
PyPItree-sitter-toml0.7.0indirecta
PyPItree-sitter-xml0.7.0indirecta
PyPItree-sitter-yaml0.7.2indirecta
PyPItrino0.338.0indirecta
PyPItrioindirecta
PyPItrio0.33.0indirecta
PyPItrio-asyncioindirecta
PyPItwineindirecta
PyPItwine7.0.0indirecta
PyPItyper0.27.0indirecta
PyPItypes-awscrt0.34.1indirecta
PyPItypes-boto31.43.60indirecta
PyPItypes-docutils0.22.3.20260724indirecta
PyPItypes-greenlet3.5.0.20260518indirecta
PyPItypes-paramiko5.0.0.20260724indirecta
PyPItypes-psutil7.2.2.20260518indirecta
PyPItypes-pygments2.20.0.20260728indirecta
PyPItypes-pymysql1.2.0.20260724indirecta
PyPItypes-pyyaml6.0.12.20260724indirecta
PyPItypes-regex2026.7.19.20260720indirecta
PyPItypes-s3transfer0.16.0indirecta
PyPItypes-setuptools83.0.0.20260724indirecta
PyPItypes-ujson5.10.0.20250822indirecta
PyPItyping-extensions4.16.0indirecta
PyPItzlocal5.4.4indirecta
PyPIuc-micro-py2.0.0indirecta
PyPIujsonindirecta
PyPIujson5.13.0indirecta
PyPIunicorn2.1.4indirecta
PyPIuritemplate4.2.0indirecta
PyPIurllib32.7.0indirecta
PyPIurwid4.0.8indirecta
PyPIurwid-readline0.15.1indirecta
PyPIuvindirecta
PyPIuv0.12.0indirecta
PyPIuvicorn0.51.0indirecta
PyPIwatchdog6.0.0indirecta
PyPIwcwidth0.8.2indirecta
PyPIwheelindirecta
PyPIwheel0.47.0indirecta
PyPIwikitextparserindirecta
PyPIwikitextparser1.0.2indirecta
PyPIwsproto1.3.2indirecta
PyPIxxhash3.8.1indirecta
PyPIyappi1.7.6indirecta
PyPIyarl1.24.5indirecta
PyPIzipp4.1.0indirecta
PyPIzstandard0.25.0indirecta
Avisos de dependencias 4

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

PaqueteVersiónRelaciónGravedadAvisosCorregido en
pyo30.27.2indirectaalta40.29.0
diskcache5.6.3indirectamoderada2
pytest8.3.4indirectamoderada29.0.3
crossbeam-epoch0.9.18indirectadesconocida10.9.20

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": 54773,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "C": 106587,
        "C++": 306513,
        "CSS": 5200,
        "GDB": 60,
        "HTML": 4945,
        "Java": 40274,
        "Rust": 60748,
        "ANTLR": 14750,
        "Jinja": 7633,
        "Shell": 9022,
        "Python": 29236729,
        "Clojure": 1802,
        "PLpgSQL": 1515,
        "Makefile": 13302,
        "Dockerfile": 13080,
        "JavaScript": 13418,
        "Vim Script": 92,
        "Jupyter Notebook": 1188
      },
      "pushed_at": "2026-07-31T04:49:43Z",
      "created_at": "2023-04-25T22:05:37Z",
      "owner_type": "User",
      "updated_at": "2026-07-31T04:49:53Z",
      "description": "My python monorepo.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "BSD-3-Clause",
      "default_branch": "master",
      "license_spdx_raw": "BSD-3-Clause",
      "primary_language": "Python",
      "significant_languages": [
        "Python"
      ]
    },
    "owner": {
      "blog": "http://wrmsr.com/",
      "name": "wrmsr",
      "type": "User",
      "login": "wrmsr",
      "company": null,
      "location": "San Frandisco",
      "followers": 92,
      "avatar_url": "https://avatars.githubusercontent.com/u/559096?v=4",
      "created_at": "2011-01-12T09:06:47Z",
      "is_verified": null,
      "public_repos": 240,
      "account_age_days": 5678
    },
    "license": {
      "state": "standard",
      "spdx_id": "BSD-3-Clause",
      "raw_spdx": "BSD-3-Clause",
      "file_present": true,
      "scorecard_found": null,
      "profile_has_license": true
    },
    "activity": {
      "releases": [],
      "recent_commits": [
        {
          "oid": "b286a1be2ce1a98596e5912ebca432d341991b48",
          "body": "…ies.",
          "is_bot": false,
          "headline": "Bump all package versions to 0.0.36 and align inter‑package dependenc…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T04:49:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cc02e7871c02d67ac933c7098caa056fa1181402",
          "body": "Upgrade tinygrad submodule to the latest commit.",
          "is_bot": false,
          "headline": "Bump boto3, botocore, and types-boto3 to 1.43.60",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T04:29:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4734c625789e1972bb35b91af1e8274ceaad398f",
          "body": "… and add proper shutdown semantics to ImmediateExecutor\n\n* Capture and validate return values in async and sync commands, returning a boolean check instead of raw results.\n* Simplify and correct parser class configuration: iterate over MRO directly, delete duplicate entries correctly, and merge ann\n[…]\ncellation logic in `wait_futures` and `wait_dependent_futures`.\n* Add extensive tests covering inheritance precedence, async command validation, executor behavior, and edge cases for futures handling.",
          "is_bot": false,
          "headline": "Fix async CLI return handling, refine Argparse parser MRO processing,…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T04:04:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5cb4d01a3fce21ed05e9a000d3035d0629ce5211",
          "body": "Validate ManifestLoader configuration types, fix class‑key parsing edge cases, and expand tests for config merging, manifest loading, and private class handling.",
          "is_bot": false,
          "headline": "Improve asyncio_maybe_timeout handling and add timeout tests",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T03:57:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "33e8ce0b7eae42656ca945dcee2ff6039c8c0667",
          "body": "…ndling\n\nReplace the manual loop in `ConditionDeque.pop` with `cond.wait_for` and raise `TimeoutError` on timeout. Added unit tests covering FnTarget runner chaining, SequentialWait progression, and ConditionDeque behavior including timeout, `if_empty` callback, and thread‑synchronised push.",
          "is_bot": false,
          "headline": "Add tests for targets, waiting and ConditionDeque; fix pop timeout ha…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T03:52:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "438ce242bfd80e63e2f989baae4d4542aeec9996",
          "body": "- Permit port 0 in TcpSocketBinder validation and add tests for default ephemeral ports.\n- Add optional no‑close behavior to StandardSocketHandler.\n- Use SocketWriter when write buffer size is zero, fixing buffer handling.\n- Introduce unit tests for socket binding, handlers, IO pair behavior, and datetime utilities.",
          "is_bot": false,
          "headline": "Allow zero port and improve socket handling",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T03:47:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ea4c8ca96dafb55e12419f60392ceb8b702d05d",
          "body": "Create threads with isolated contextvars, replace rmtree with safe unlink for temporary files, delete callback entries on keyed exit‑stack removal, and add tests for LinuxOsRelease, path checks, temp file cleanup, and keyed exit‑stack reuse.",
          "is_bot": false,
          "headline": "Fix variant ID key case and strengthen path containment logic",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T03:43:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2a9026b73aa2f265596bef9eee3ff78166f11fe3",
          "body": "Update Bind placeholder detection, add validation to iterables.chunk, refine recursion limiting logic, and extend test coverage for builders, genmachine, guard, pairs, pipes, cells, class dictionary helpers, datetimes, iterables, and recursion.",
          "is_bot": false,
          "headline": "Fix DebugFnBuilder sys path flag and improve GenMachine.close robustness",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T03:35:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2b0c106535ef428803cdfa2aac0b5c21b2b522e6",
          "body": "Remove unnecessary Py_DECREF in StrongCache dispatch and add tests for strong‑cache reference ownership and uncached‑miss handling.",
          "is_bot": false,
          "headline": "Replace manual timedelta to seconds conversion with total_seconds()",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T03:20:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "08027702b0b779bd6cc7948311582ddd7fea388e",
          "body": "…tilities, progress bar, decoding, and indent writer.\n\nTests cover global timer context and decorator, ANSI color palette bounds, term coloring selection, progress bar behavior for empty and small sequences, and proper decoding of multibyte offsets. Also correct the bounds check in _clamp_ofs, handle zero‑total progress bars safely, select struct format based on raw input length, and fix newline offset handling in IndentWriter.",
          "is_bot": false,
          "headline": "Add extensive unit tests and fix edge‑case bugs in timers, terminal u…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T03:00:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "876b7a9b509df3ccdeb1b1b6097b572245186a53",
          "body": "Improve rendering by escaping strings and attribute values, remove unused dataclass imports, fix lifecycle manager recursion order, correct pwgen CLI character class selection, and add tests for content removal, rendering, lifecycle dependencies, and password generation.",
          "is_bot": false,
          "headline": "Add strict mode to Dom.remove and enforce content presence",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T02:57:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ee54ee90f2fd818bab44b18433c640b6cbf19791",
          "body": "…ests\n\n- Initialize depth‑first traversal with root in seen set and use safe dict.get for immediate dominators.\n- Replace recursive DFS with explicit stack in dominator tree construction.\n- Simplify DOT graph creation, correctly escape IDs, and improve make_simple handling.\n- Strengthen iterator uti\n[…]\npling histogram, and Stats (empty data defaults, percentile bounds, bin count checks, trim behavior).\n- Introduce C‑style division/modulus utilities with zero‑divisor handling and corresponding tests.",
          "is_bot": false,
          "headline": "Fix bugs across graph, iterator, and math modules and add extensive t…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T02:10:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "09d7d43f5580a172eab1d0e4909e466d88d160e8",
          "body": "Add tests for distribution, bytes codecs, chain codec, and registry; improve CodecRegistry.register to detect duplicate names atomically.",
          "is_bot": false,
          "headline": "Validate bin count in distribute_evenly and add tests",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T02:08:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ed376d1f54fd99961a046f19259851d852d9f397",
          "body": "Correct IdentityWeakSet discard handling, OrderedSet pop behavior, ProxySet operator overloads, SortedListDict deletion and value iteration, SkipList descending iteration edge cases, and add comprehensive tests for frozen, identity, ordered, proxy, mappings, ranked, skiplist, and utils.",
          "is_bot": false,
          "headline": "Fix FrozenDict reuse logic, hashing, and update methods",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T02:05:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e06221fe2299faacaa7cec79288ccaafaa4480f5",
          "body": "Synchronize all package versions and internal dependencies to the new 0.0.35 release.",
          "is_bot": false,
          "headline": "Bump version to 0.0.35",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T01:59:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3053c41834007f1d36928ad950f06847377dc40f",
          "body": "Introduce a zero‑dependency Redis client built as a non‑HTTP pipeline, including command encoder, response decoder, client handlers, and a demo script for synchronous and asynchronous drivers. Add comprehensive unit tests covering address parsing, fragmented replies, end‑to‑end client behavior, and error handling. Mark `_IoPipelineAsgiStepResult` with a TypeAlias comment.",
          "is_bot": false,
          "headline": "Add RESP2 Redis client pipeline example and tests",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T23:44:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d4fe8afd8ca7852b6e915dd52e1fbfb7fcb1cbf0",
          "body": null,
          "is_bot": false,
          "headline": "Add nginx and redis to development and system dependency sets",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T23:18:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c710628970e5d42fa4d95fd929f26f9fab6be02a",
          "body": "…tor fast‑path\n\nIntroduce `ElementCollection.provision_plan` cached per key and integrate a fast‑path in `AsyncInjectorImpl` that directly executes compiled plans. Refactor `impl/plans.py` to use async‑native two‑colored nodes, add `is_degenerate` handling, and make `ProvisionPlan.provide` async. Update imports, proxy loading, and tests (planning demo, GC, plan parity) to exercise the new compiler and fast‑path behavior. Adjust documentation and TODO notes accordingly.",
          "is_bot": false,
          "headline": "Add async‑native provision‑plan compiler with per‑key cache and injec…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T23:15:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "38e00cd38c0cc295bdfcb5bc7918cd1a44b8f81a",
          "body": "Inject permissions manager to enable permission handling in the command suite.",
          "is_bot": false,
          "headline": "Add PermissionsCommand to UI command manager",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T23:12:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "925b860b15304d5909e2cfc466a04af73790b33e",
          "body": "…parsing\n\nIntroduce _IoPipelineHttpResponseReaderState to manage pending data and end-of-response detection, and _raise_http_response_aborted to surface aborts as HttpClientError. Extend both async and sync pipeline clients to handle IoPipelineHttpResponseAborted messages and enforce proper read sem\n[…]\nlicit default ports, and construct accurate Host headers. Add comprehensive unit tests for request preparation, response streaming, and abort scenarios. Include new permissions command implementation.",
          "is_bot": false,
          "headline": "Add response abort handling, response reader state, and improved URL …",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T23:05:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "07f00773edcc5d4b38266846dd32e012f66c651d",
          "body": "…prompting\n\nIntroduce an InputPermissionAsker class and switch to StandardPermissionDecider with ASK rules for filesystem permissions, importing the new decider and updating the permission handling logic accordingly.",
          "is_bot": false,
          "headline": "Add fdio client comparability note and enable interactive permission …",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T22:46:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4dd875bcf39bd5d935d75760b4da51817546f2e0",
          "body": "Introduce `ProvisionPlan` and `ProvisionPlanCompiler` to compile static provision plans, update `OnceProvisionMap.provide` to accept an optional compute function for compiled scopes, refactor the planning demo to use the new API, and add a full test suite (`test_plans.py`) covering memoization, singleton sharing, scoped caching, cycle detection, unbound keys, listener fallback, parent delegation, cross‑boundary coherence, and compiler reuse.",
          "is_bot": false,
          "headline": "Add experimental provision‑plan compiler",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T22:23:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0cef492244e8455e1b0eda0cbbdd0110d056bd52",
          "body": "…P pipelines\n\nIntroduce CanByteStreamBuffer types and ByteStreamBuffers utilities, update compressors, decompressors, aggregators, chunking, websocket handling, and related tests to work with segmented buffers. Drivers (asyncio, fdio, sync, pure) now emit SegmentedByteStreamBuffer instances instead of raw bytes, and decoders adopt mutable buffers without unnecessary copying. This refactors the codebase to a unified, zero‑copy byte buffer model.",
          "is_bot": false,
          "headline": "Replace BytesLike usage with ByteStreamBuffer abstractions across HTT…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T22:16:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9972669f1abc0f78698521d086e22b564cce33ff",
          "body": "Rename `SimplePermissionsManager` to `StandardPermissionsManager` throughout the codebase. Introduce a `PermissionRequestor` alias and a new `PermissionAsker` interface. Update `PermissionDecider` signatures to accept a requestor, add a `StandardPermissionDecider` implementation, and modify all permission checks in tools and UI to pass the execution context (`ctx`). This enhances permission handling with explicit requestor awareness.",
          "is_bot": false,
          "headline": "Refactor permission system to use requestor context and rename manager",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T22:15:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "008bf020ef52773be8a2a4cbe7dccb1ac082eb6b",
          "body": "…ring\n\nIntroduce `Plan` and `PlanCompiler` to statically compile injection graphs, allocate slot‑based memoization, handle singleton and delimited scopes, detect cycles at compile time, and fall back to interpreter for unsupported providers. Includes a self‑test suite and benchmarking demo to verify semantics and measure performance.",
          "is_bot": false,
          "headline": "Add experimental provision‑plan compiler with shape/link/execute laye…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T21:50:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2039195635702927a0b4daed6668aa51040491c8",
          "body": "Introduce a tiny, dependency‑free SVG rendering library that supports grouped bar charts, legends, axes, and automatic layout. Includes data models, scaling utilities, and a benchmark_dashboard helper to generate client and server benchmark SVG files.",
          "is_bot": false,
          "headline": "Add SVG dashboard renderer and benchmark generator",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T21:47:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "912c1ba5fc1ff6cae39a34c92ad2ab0243d8ea7e",
          "body": "Use a Protocol to define the callable signature, improving type checking and readability.",
          "is_bot": false,
          "headline": "Replace ProvisionListener type alias with Protocol",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T21:35:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd90d729f59dbd1ff5a851a60098e3f9caf708c5",
          "body": "Introduce `read_batch_max_bytes` and `read_batch_max_reads` in the driver configs, validate their values, and modify the read loops of asyncio, fdio, pure, and sync drivers to respect these limits. The changes ensure input flushing occurs before EOF, handle partial read errors correctly, and update related tests to cover the new behavior.",
          "is_bot": false,
          "headline": "Add configurable read batch limits to I/O pipeline drivers",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T21:31:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "91c26dcf11879f5145848c96fda7aa1d90b05c31",
          "body": "…tions for request handling and scope entry\n\nImplemented a non‑generator `_RequestGuard` and inlined request‑frame logic in `_try_provide` to eliminate contextmanager overhead. Added manual async context manager `_Entry` in `DelimitedScopeImpl` and `_AsyncScopeEntry` wrapper for `async_enter_scope`, removing `contextlib` usage and importing `types`. Updated imports accordingly and streamlined source‑stack handling. These changes improve hot‑path performance.",
          "is_bot": false,
          "headline": "Replace generator‑based context managers with manual class implementa…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T21:18:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "610da5825e5bf7221ca844f0334ace027bc8a973",
          "body": "Introduce a self‑contained benchmark module with latency and memory tests, auto‑calibrating iteration counts, async support, JSON output, and optional cProfile profiling. Provides a command‑line interface to run, filter, and profile benchmarks, helping detect performance regressions and memory leaks.",
          "is_bot": false,
          "headline": "Add DIY benchmarking and profiling suite for omcore.inject",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T21:01:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dd6b55d62b33dd97d6f94bae0a9de25f80ff1a9d",
          "body": "Add `target_factory` and `case_runner` parameters to `_run_client_suite`, defaulting to a fresh Nginx fixture for each case to prevent state leakage. Update documentation to reflect the new behavior. Introduce tests that verify a new target is created for every client case and that an external base URL is reused across cases.",
          "is_bot": false,
          "headline": "Refresh client target per case and make client suite injectable",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T20:42:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "06666b0f4c3336675e612431696fc46c39660a6b",
          "body": "Introduce DelimitedScope as the new unit‑of‑work scope, implement ContextVar‑backed opening policies, and update the injector to validate scope registration, prevent redeclaration in child injectors, and enforce eager bindings to be local to their scope. Add new error types (ScopeAlreadyRegisteredError, ScopeNotRegisteredError, ScopeEagerNonLocalError) and adjust default scopes handling. Update documentation, tests, and utility functions to use the new DelimitedScope API.",
          "is_bot": false,
          "headline": "Replace SeededScope with DelimitedScope and add contextual scope support",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T20:35:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ad116fe8eb4b4c6892601be4dd1491a5ed8b83cf",
          "body": "Introduce a new bench module providing client and server benchmark implementations, utilities for parsing, partitioning, and result handling, along with a comprehensive test suite covering core functionality.",
          "is_bot": false,
          "headline": "Add self-contained HTTP pipeline benchmarks and tests",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T19:23:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "893d3578e7e716f8d4b35598dbe5a38d0e028450",
          "body": "Implemented PermissionRules collection, deciders, FS, shell, and URL matchers, managers, and marshaling support. Replaced the old PermissionGranter with PermissionDecider in filesystem, read, and bash tools, introduced SimplePermissionsManager and a default deny decider, and updated the UI accordingly while removing the obsolete PermissionGranter module and adding comprehensive tests.",
          "is_bot": false,
          "headline": "Add modular permissions system and migrate tools to PermissionDecider",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T19:20:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "96680ace6af894fc3bb558d05af54d9141c70e7a",
          "body": null,
          "is_bot": false,
          "headline": "Bump nginx to 1.31.3 and nginx_vts to 0.2.6",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T18:56:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "778af450813dd2b66244ba007d12a2d7e4c9cc5e",
          "body": "Simplify runner creation by using the default asyncio.Runner, which already creates a fresh event loop.",
          "is_bot": false,
          "headline": "Remove redundant loop_factory argument from asyncio.Runner",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T18:11:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4b2150668e22252872d8f197aca5a72b9ad5ba81",
          "body": "…rencing inj, and asyncio coalescing; refactor pipeline driver attribute declarations\n\nExtended test suite now covers:\n- Verification that injector keys are not type‑checked and can return any bound value.\n- A late‑binding example using a custom getter type that avoids importing the injection machin\n[…]\ner`, `PureIoPipelineDriver`, `SyncSocketIoPipelineDriver`) have been cleaned up by consolidating and reordering attribute definitions, removing duplicated declarations, and simplifying initialization.",
          "is_bot": false,
          "headline": "Add injector tests for type‑unchecked keys, late binding without refe…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T18:02:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1b14ad656f1a68db607b27e9246e87c53cf460a3",
          "body": "…cs, and tunnel mode\n\nIntroduce `is_interim` on response heads and a new `tunnel` body mode. Update the HTTP client pipeline to skip interim responses, correctly process HEAD and CONNECT requests, and reject conflicting Transfer‑Encoding/Content‑Length headers. Implement a client‑aware response deco\n[…]\nndler to manage interim and final response states. Add comprehensive tests for these behaviors and fix the WebSocket client upgrade handler to consume the HTTP response end after a successful upgrade.",
          "is_bot": false,
          "headline": "Add proper handling for interim (1xx) responses, HEAD/CONNECT semanti…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T05:12:59Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b6ccabc280eb6f8088c396859bd6081a0dd6f9ff",
          "body": "Implement weak reference handling for bound cached methods, including a fallback strong holder for non‑weakrefable objects, new cache spec flags, descriptor adjustments, and code‑gen changes. Add comprehensive tests for weak binding behavior, element‑collection garbage collection, and update related documentation and TODO entries.",
          "is_bot": false,
          "headline": "Add weak‑instance caching with pinning and strong_instance option",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T04:49:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4f9fda2c49986888109d7acb0780d12543e9f7c2",
          "body": "…internal constants, add dead‑injector detection, and support weak‑parent private injectors. Update late binding to use weak refs, adjust seeded‑scope manager and child handling, and add comprehensive GC hygiene tests.",
          "is_bot": false,
          "headline": "Fix reference‑cycle leaks by weak‑ref‑ing injector relationships and …",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T03:59:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6d657a17e8b29b6cf0205a53e7f78577701ff604",
          "body": "…class\n\nMoved the file to `omcore/diag`, merged a split comment line, replaced `# pragma: no cover` with `# noqa`, and added an `other: ta.Any` attribute to the inline test class.",
          "is_bot": false,
          "headline": "Rename refcycles module, tighten comments, and add type hint to test …",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T02:18:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a74f61becfef595287915b0a02e78a83b94b9452",
          "body": "Switches all uses of `uuid.uuid4()` to the newer `uuid.uuid7()` to obtain time‑ordered, sortable identifiers across tagging, multipart encoding, storage journaling, linecache reservations, and LLM backend tool call IDs.",
          "is_bot": false,
          "headline": "Replace uuid4 with uuid7 for UUID generation",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T01:09:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d108ef4bee28cee0f3a705fa0e390a85dbc71566",
          "body": null,
          "is_bot": false,
          "headline": "Bump package versions to 0.0.34 across all components.",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T00:08:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f1a70eaf08371c0b3cb109d5597493a762c9526c",
          "body": null,
          "is_bot": false,
          "headline": "Add transformers to backend dependency skip list",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T00:04:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "87fac6d8d22ebcf89d158d8f89e1679ece2dd879",
          "body": "Replace the pipdeptree module call in the Makefile, drop pipdeptree from dev and frozen requirements, and remove obsolete packages (Flask stack, blinker, installer, itsdangerous, nab‑*, tomli, truststore, Werkzeug, etc.) while adjusting build version.",
          "is_bot": false,
          "headline": "Use x.pipdeptree for the dep‑tree target and prune unused dependencies",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T23:54:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f8f8f68b4947805627bd77180aead1fd6468ad56",
          "body": null,
          "is_bot": false,
          "headline": "Upgrade filelock to 3.32.2 and bump tinygrad submodule",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T23:48:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c3fd8fd19136c18384ba27744a195eff16c40c10",
          "body": "Drop the type:ignore on session.verify and session.pip_proxy assignments, and add a try/except to import stdlib_pkgs from pip._internal.metadata.base for pip 26.2+, falling back to the previous location.",
          "is_bot": false,
          "headline": "Remove unnecessary type:ignore comments and improve stdlib_pkgs import",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T23:47:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "81f20644e6a81b5fd12155bc1db1f1fdf044d604",
          "body": "Introduce CommandContext and CommandClass with full argparse handling, replace ui_text_to_rich_text with text_to_rich_text, add QuitSignal/RaiseQuitSignal, ensure MarkdownText writes a trailing newline, update CommandsManager to use TextDisplayer, add Echo and Quit simple commands, and integrate command handling into Session and the bare UI.",
          "is_bot": false,
          "headline": "Refactor command architecture and UI utilities",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T23:34:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a9df7f67b4f86d8b4e77a00d4a6a9d9b5ad568ad",
          "body": "Add multi‑scope seed discussion to the TODO and refactor the UI module (display, json, rich, text) and related tests to use the new Text, TextStyle, and TextDisplayer names throughout the codebase.",
          "is_bot": false,
          "headline": "Rename UiText API to Text and update all references",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T23:02:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "14af4de74aa963dd6fe3cd049e3ea82a6ada05f6",
          "body": "Introduce base Command classes with argument parsing, error handling, and a CommandsManager that parses text input, resolves commands, and executes them with UI feedback. This provides a structured command infrastructure for the harness.",
          "is_bot": false,
          "headline": "Add command framework to harness",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T22:55:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c50d40548cb7eba79be18ff9f5bec1a3f8366128",
          "body": "…ending‑removal semantics\n\nDocument the required removal contract, reentrant decode handling, and test coverage for inbound/outbound topology mutations.",
          "is_bot": false,
          "headline": "Add comprehensive TODO describing dynamic decoder removal and Netty p…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T22:47:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9e2882752e4c371bb201e6db2695719f337cdf53",
          "body": "…bda with inj.target\n\nIntroduce `ScopeFrozenError` and a `freeze()` method for `SeededScopeImpl`, adding a frozen flag and guard in provision. Extend `OnceProvisionMap` with a `has()` check and use it to enforce frozen behavior. Ensure async injector initialization before `provide_kwargs` and `injec\n[…]\ndings with the preferred `inj.target` across the codebase, updating imports, docs, and tests. Add new tests for frozen scopes and adjust documentation regarding collection ordering and lambda binding.",
          "is_bot": false,
          "headline": "Add frozen‑scope support and request‑sharing fixes; replace typed_lam…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T22:44:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2da874e09190a88b6b6facf57d2bdafe39756dfc",
          "body": "…xpose in UI package\n\nIntroduce MarkdownUiText class as a placeholder for markdown rendering and update imports accordingly.",
          "is_bot": false,
          "headline": "Add UiTextDisplayer abstraction with Nop and Print implementations; e…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T22:40:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f91dd94fc66b990531bfd777b9660b66b522267",
          "body": "…xamples, and common patterns\n\nInclude tests for graph shapes, failure paths, scopes, multibindings, overrides, lifecycle management, and real‑world composition patterns.",
          "is_bot": false,
          "headline": "Add extensive injector test suite covering adversarial cases, usage e…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T22:03:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eb603ecff1091f3d36688f48d5810d7373b405e2",
          "body": "Update documentation to include the pure driver as a reference implementation, adjust fdio and sync drivers to use the flow service’s auto‑read logic, introduce a deterministic PureIoPipelineDriver, add extensive conformance and pure‑driver unit tests, and enable heap scheduler to accept an injected clock for deterministic timing.",
          "is_bot": false,
          "headline": "Add pure no‑I/O driver and comprehensive driver conformance tests",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T21:58:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "96b178a21d79551313800b611846fc05cd0716fe",
          "body": "Introduce a new “interop” package with modules for llama‑cpp, mlx, tavily, tinygrad, torch, and transformers, including utilities for hacks, function creation, name generation, patching, tokenization, generation, loading, and streaming. Extend the project dependencies to include llama‑cpp‑python, mlx, mlx‑lm, tinygrad, torch, and transformers, and rename the huggingface group to “interop”. Add corresponding tests, fixtures, and helper scripts.",
          "is_bot": false,
          "headline": "Add interop support for multiple backends and update dependencies",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T21:57:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a50cc8b8b060d8a1b3c4de4c6dff82825d5c0591",
          "body": "Implemented a new `Session` class that holds an `Agent` and forwards prompts, added the corresponding import, and updated the UI to use `Session.prompt` instead of calling the agent directly. Also renamed agent imports to `agn` and adjusted related references.",
          "is_bot": false,
          "headline": "Add Session wrapper in harness and integrate it into the bare UI",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T21:29:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "09d855eed21a87f88a34101d08cfd61e79982de8",
          "body": "Refactor TurnLoop to build the LLM context in a dedicated method and add a verbose CLI flag for conditional event output.",
          "is_bot": false,
          "headline": "Add error handling to tool execution and expose errors in ToolResult",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T21:22:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "68427b27abb94ea2d600e02d4afc1654ed7ba7f2",
          "body": "Expose the new LlmAiStreamEvent, emit it while iterating over llm.StreamBackend streams, and switch the bare UI example to use the streaming backend with event logging.",
          "is_bot": false,
          "headline": "Add LlmAiStreamEvent and stream handling in TurnLoop",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T20:56:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "54d1b8db4465cbb699065e5a262029ae914b6879",
          "body": "Add a cached RichMarkdown configuration, import typing, lang, and Rich UI utilities, adjust permission prompt formatting, and remove stray debug printing.",
          "is_bot": false,
          "headline": "Render AI text content with Rich Markdown",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T20:41:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e9606d7600ffa4c4c25c1124172023df7ca24339",
          "body": "Upgrade pgvector to 0.8.6, bump boto3, botocore, types‑boto3 to 1.43.59, and update APSW. Refine event handling to print only AiMessage objects and advance the tinygrad submodule reference.",
          "is_bot": false,
          "headline": "Bump pgvector image and update core dependencies",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T20:32:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d8714f408e7eaabf906bf4955802c8fe6c6c0331",
          "body": "Remove unused static _run_* helper methods and the functools import, using check.isinstance within the lambdas to invoke the appropriate instance method directly.",
          "is_bot": false,
          "headline": "Replace timeout callbacks with inline lambdas",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T20:28:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "965bbb670f732f689aae44c17361346f46d74c9b",
          "body": "Introduce DESIGN.md detailing architecture, lifecycle, flow control, scheduling, and driver contracts. Update README with a link to the design doc and clean up the TODO list accordingly.",
          "is_bot": false,
          "headline": "Add comprehensive pipeline design documentation",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T20:14:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "518a02695c82b05e624c2a936c832737d00a5fe7",
          "body": "Add listener logic to record write activity when a FlushOutput completes successfully, introduce WRITE_ACTIVITY_STATES, update documentation, and extend tests to cover flush completion handling, failure cases, and interaction with idle timers.",
          "is_bot": false,
          "headline": "Track successful FlushOutput as write activity",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T20:00:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "04308935dfad716c00add68fc7d0b1c07c79f373",
          "body": "Include tests for immediate and streaming backends using SyncAsyncHttpClient and lang.sync_await to verify synchronous execution.",
          "is_bot": false,
          "headline": "Add sync test cases for OpenAI completions backends",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T19:58:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "57e9abf0c47e0fd4497963a02b777e892c701af4",
          "body": "Implement a new handler that schedules and cancels write deadlines for FlushOutput and FinalOutput fences, emits TimeoutIoPipelineError on expiry, and integrates with pipeline scheduling. Extend tests for sync, asyncio, and fdio drivers to cover timeout behavior and remove obsolete TODO comments.",
          "is_bot": false,
          "headline": "Add WriteTimeoutIoPipelineHandler with outbound timeout enforcement",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T19:37:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ed9309b44d708c43cce5e90fa66ca3d8dbb44f82",
          "body": "…eyed elements concatenate\n\nUpdate ElementCollection to apply overrides by whole‑bucket replacement for keyed elements while concatenating unkeyed ones. Add detailed docstring to `override` explaining the behavior. Adjust tests to reflect the new override logic (remove xfails, add cases for set/map multi‑bindings and eager handling). Clean up imports and TODO notes related to validation.",
          "is_bot": false,
          "headline": "Fix override semantics: per‑key elements now replace wholesale, non‑k…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T19:33:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3b476a13a331256f008f9fe1fbe940677b9ee03f",
          "body": "Introduce a non‑blocking `drain_socket` helper for tests and a new `TestFdioSslIoPipelineHandlerShutdownTimeout` class that verifies TLS shutdown timeout handling, timer scheduling, error propagation, and proper driver cleanup.",
          "is_bot": false,
          "headline": "Add TLS shutdown timeout test and socket drain helper",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T19:02:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c40884503c57c337082e9324d414a518869240be",
          "body": "These tests capture the intended semantics for set, map, eager bindings, and non‑keyed elements, which currently fail because the override implementation replaces per‑key element lists wholesale (see TODO.md).",
          "is_bot": false,
          "headline": "Add xfail tests for override merging behavior and edge cases",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T18:59:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "db6fa95fcbbba86c7438c55df0c58d19f305ec15",
          "body": "Introduce a RecordingSelectFdioPoller to capture poll timeouts and a new TestFdioSslIoPipelineHandlerTimeout verifying TLS handshake timeout handling with FdioManager. Add InputPermissionGranter that prompts the user for permission instead of using a constant granter.",
          "is_bot": false,
          "headline": "Add FDIO TLS handshake timeout test and interactive permission granter",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T18:55:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ef682bc973b26b324cec62099fc121e0e2d68c31",
          "body": "The `in_` argument now accepts a scope name (`str`) as well as a `Scope` instance, enabling configuration by string identifiers.",
          "is_bot": false,
          "headline": "Allow string values for `in_` scope parameter in bind()",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T18:49:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9e1ccd2de628eadc51d7cedeaefd9cc8af7ff0f0",
          "body": "…ivers\n\nRefactor the fdio and sync socket pipeline drivers to use a new common `HeapIoPipelineSchedulingService` instead of duplicated internal scheduler implementations. Update driver code to call `run_due()` and adjust imports accordingly. Add comprehensive heap scheduler unit tests and a new FDIO HTTP server timeout test covering partial request handling and timeout propagation. Update related test expectations and clean up TODO entries.",
          "is_bot": false,
          "headline": "Extract shared heap‑based scheduling service and integrate it into dr…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T18:46:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bded591d6230fe627f0e7d9185424b404c5745e7",
          "body": "Introduce a generic `ScopeImpl` with class methods (`scope_cls`, `eager_point`, `auto_elements`), replace `make_scope_impl` usage with a new `get_scope_impl` lookup, update element collection and eager‑point checks accordingly, and restructure the scope implementation registry.",
          "is_bot": false,
          "headline": "Refactor scope handling to generic class‑based implementation",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T18:45:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8c4e51c5ec8dbaf39558171609bb611073ae130b",
          "body": null,
          "is_bot": false,
          "headline": "--",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T18:39:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5f06b3674b3c3d110395e02bf4d23127259a737e",
          "body": "Introduce `_has_init` flag and async helpers in `InputManager` to import `readline` only when stdin is a TTY. Use the manager for all prompts, handling `EOFError` to exit cleanly, and rename the backend variable for clarity. This prevents unnecessary imports and improves graceful shutdown.",
          "is_bot": false,
          "headline": "Add lazy readline initialization and robust input handling",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T18:19:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2cc73da71e2a87dae4a345cab14d81dc02393c6c",
          "body": "Introduces a lock‑protected `input` method that runs `input()` in a background thread, enabling safe concurrent usage in asynchronous contexts.",
          "is_bot": false,
          "headline": "Add async InputManager with thread‑offloaded input handling",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T18:15:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "94c8367358b450452404a5200d7e0125c3c9f7ef",
          "body": "…e in IoPipelineDriverSocketFdioHandler with timer support, deadline handling, cancellation, and manager wake‑up.",
          "is_bot": false,
          "headline": "Add fdio HTTP ping server demo and tests; implement scheduling servic…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T17:46:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d62be7b6ea8f38920d71778bd1f8fef3ffa251e5",
          "body": "Introduce PermissionGranter and ConstantPermissionGranter, expose them in the agent package, update LsTool, ReadTool, and BashTool to require a PermissionGranter and enforce permission checks, and wire a constant granter into the bare UI.",
          "is_bot": false,
          "headline": "Add permission granter infrastructure and integrate it into tools",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T17:42:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cc7e23681d378e22d8c6733295bd0da34ccdad6f",
          "body": "Eliminate `omcore.lang.cached_function` wrappers and related imports from dummy, filesystem, and shell tools. Update all callers—including tests and the bare UI—to import the tool classes (`GetWeatherTool`, `LsTool`, `ReadTool`, `BashTool`) and invoke `.tool()` on instantiated objects, simplifying the tool registration flow.",
          "is_bot": false,
          "headline": "Remove cached tool factories and use tool class instances directly",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T17:30:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "41a58aa0537b6c75cf24abdef8464f0e0a924429",
          "body": "Introduce `next_deadline` and `on_timeout` abstract methods, compute poll timeout from the earliest handler deadline, validate caller‑provided timeout, invoke `on_timeout` when due, clean up closed handlers, adjust poller unregister behavior, and add extensive unit tests for the new functionality.",
          "is_bot": false,
          "headline": "Add deadline handling and timeout callbacks to FDIO manager and handlers",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T17:24:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1bcd521045da099a42a9707e115ec7948e3358ca",
          "body": "Introduce -S/--start-col and -E/--end-col options with validation and end‑line adjustment, add optional argument logging, and include a regression test for docstring wrapping.",
          "is_bot": false,
          "headline": "Add column support to docwrap CLI",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T17:23:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "13691e20f006a93f6f3788d847ec795be9425d31",
          "body": "This updates the submodule reference from a17387d6a to 3803f1583, bringing in recent changes and fixes.",
          "is_bot": false,
          "headline": "Upgrade tinygrad submodule to newer commit",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T16:40:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3df3b73164386ff5a2ebdcb62ba373e52f7eb36c",
          "body": "…ful shutdown\n\nReplace the previous non‑completable FinalOutput with a dataclass implementing Completable[None]. Adjust pipeline contexts to return the message, add helper methods to finish the Completable on success or error, and update asyncio, fdio, and sync drivers to invoke these helpers during drain and close. Refactor handlers and tests to track and assert the FinalOutput’s completion state, ensuring proper graceful termination without premature aborts.",
          "is_bot": false,
          "headline": "Make FinalOutput a Completable and integrate its lifecycle into grace…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T04:52:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9e70584ddc9fcbdf990cc1913a66c27761d3e965",
          "body": "… fields class‑level defaults\n\nIntroduce a WeakKeyDictionary cache for dataclass ClassReflection in `reflect_tool_params`, add stricter type checks and return a `Sequence`. Move `_active` and `_active_used` to class attributes in `SegmentedByteStreamBuffer` to define default state more cleanly.",
          "is_bot": false,
          "headline": "Cache dataclass reflection for tool parameters and make active buffer…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T04:51:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e618472858f15c37166be5687126ed581eae3f98",
          "body": "…ernal `_ref` accesses\n\nRefactor pipeline code to use the new `ref` property, introduce a local `pipeline` variable for state checks, and update propagation, error handling, and handler lookup logic accordingly.",
          "is_bot": false,
          "headline": "Expose public `ref` on `IoPipelineHandlerContext` and replace all int…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T04:36:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e92316c781ae115a6c1321205c5522ea1a265670",
          "body": "- Added AbortedIoPipelineError and made IoPipelineFlowMessages.FlushOutput implement Completable, ensuring it signals success only after all prior output leaves pipeline buffers.\n- Refactored Completable binding/unbinding, unified finish logic, and aggregated listener exceptions without leaking inte\n[…]\nsted SSL handler to queue pending FlushOutput messages and emit them in order.\n- Extended tests to verify immediate completion without a writer, proper ordering, listener behavior, and abort handling.",
          "is_bot": false,
          "headline": "Make FlushOutput a Completable and improve completion lifecycle handling",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T04:31:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d35916f1fccc6cfa50cb463462d79ad1af414512",
          "body": "…ression/TLS pipelines\n\nIntroduce a _TimeoutResponseIoPipelineHandler and a new backpressure test that validates a 504 Gateway Timeout response drains correctly over slow TLS gzip streams. Add reference‑cycle tests for active HTTP compression and TLS handlers, and update pipeline TODOs to reflect timeout scheduling work.",
          "is_bot": false,
          "headline": "Add timeout response integration test and ensure no cyclic GC in comp…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T03:22:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9f18c24b77c23868491addbd3a0eb35d05e5f0b5",
          "body": "…cies accordingly.",
          "is_bot": false,
          "headline": "Bump all package versions to 0.0.33 and update inter‑package dependen…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T03:21:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "71263fb6c8856bab183e0ac0837137cd4a6adc4b",
          "body": "Update test helpers to instantiate the lexer via its Config wrapper, matching the new initialization API.",
          "is_bot": false,
          "headline": "Use JsonStreamLexer.Config for lexer construction in tests",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T03:05:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "79fd97883e88a5fbf2dbb97651d5fe3495e6ee50",
          "body": "…f ownership and schedule_context API\n\nReplace direct imports of dataclasses with package-relative imports, refactor HttpHeaders, decoder/encoder, SSL handler, and various pipeline components to store non‑owning weak references. Add a new `schedule_context` method to `IoPipelineScheduling` and updat\n[…]\nUpdate caches, handler contexts, and driver implementations accordingly. Add comprehensive tests to verify that pipeline topology, handlers, and active timers do not require cyclic garbage collection.",
          "is_bot": false,
          "headline": "Break reference cycles in pipeline core and drivers, introduce weakre…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T02:57:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1c97f8715ee2572c73537c09318179f5110b1ac7",
          "body": "…tructors\n\nIntroduce frozen, kw‑only Config dataclasses for JsonStreamLexer, JsonStreamParser, and JsonValueBuilder, replace multiple keyword arguments with a single config object, and update internal attribute accesses accordingly. Adjust package initialization, utilities, and tests to use the new Config classes and enable code generation, while adding formatting and linting directives.",
          "is_bot": false,
          "headline": "Add Config dataclasses to streaming JSON components and refactor cons…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T02:00:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1896980e1147d9c3b79a61f0b36c60878eed054f",
          "body": "…enchmark\n\nReplace function‑based reflect_tool_fn usage for the dummy weather and bash tools with ToolClass subclasses, introducing explicit name, params_cls, description, and execute methods. Add a new benchmark suite for the streaming JSON parser that measures performance across feeding modes against stdlib C and pure‑python decoders.",
          "is_bot": false,
          "headline": "Refactor tools to class‑based implementation and add JSON streaming b…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T01:45:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fe001156402e608cf9f0e011a7acc22af370490b",
          "body": "Introduce a lightweight PackedPosition type and unpack_position helper, store it in Token as packed_pos, and expose a .position property. Update the JSON stream lexer to emit packed tuples and adjust the parser to use the new property, improving token creation performance.",
          "is_bot": false,
          "headline": "Replace Position with packed tuple for token positions",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T01:36:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a5d879367f8bc2db11ea42e8ddb3f2a39c6d0f25",
          "body": "Introduce a unified `_fail` path that marks the driver as FAILED and closes resources, track a closing writer, and handle transport read/write errors as driver failures. Add a `_ReadFailedCommand` to propagate read exceptions, wrap command execution, output handling, and scheduling with fail logic, \n[…]\nfely repeatable. Apply analogous improvements to the fdio and sync drivers. Expand the test suite with lifecycle, error‑propagation, and draining‑abort scenarios, and update documentation accordingly.",
          "is_bot": false,
          "headline": "Add robust failure handling and idempotent close to I/O pipeline drivers",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T01:24:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "22ecaa976624dddc4ac4afc1787a98e45915c8c3",
          "body": "Cover eager formatting, streaming modes (including buffered and small read buffers), line mode, JSON5 input handling, and error cases to ensure correct output and exit codes.",
          "is_bot": false,
          "headline": "Add comprehensive tests for the JSON CLI tool",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T01:19:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b64faca5d5896b2898e3ce8106daac78ca7f9f0c",
          "body": "Convert ls and read tools into ToolClass subclasses, simplify tool construction via .tool(), expose ToolClass in package init, and adjust description handling accordingly.",
          "is_bot": false,
          "headline": "Refactor filesystem tools to use the new ToolClass abstraction",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T01:17:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f367d4de2630214100da99b74eee8dfbea59c6e8",
          "body": "…d position tracking and suspendable input handling\n\nIntroduce new buffer management (_more, _read_chars, _consume_to) and fast‑path for single‑character buffers, simplify token scanning, fix string/number/identifier/comment parsing, improve error handling, and update utils and parser to correctly flush EOF and suppress secondary errors during context exit.",
          "is_bot": false,
          "headline": "Refactor streaming JSON lexer to use a single buffer with offset‑base…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T01:08:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d1632851bb3b10cbc1a5a336038e0d01dcd48a0",
          "body": "Introduce a drain task, request/cancel logic, and a DrainCompletedCommand to manage writer.drain() without blocking the driver. Queue output messages while a drain is pending, update writability checks, and ensure proper cleanup on shutdown and failure. Extend tests to verify non‑blocking behavior, coalesced drains, and error propagation.",
          "is_bot": false,
          "headline": "Add asynchronous drain handling and coalescing for output writes",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T00:50:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "333700a30094befedb0402b7994fe1f4621cffaf",
          "body": "… utilities\n\nExpose instantiate_tool_params and reflect_tool_params in the agent package and implement a generic cached wrapper that builds llm.Tool instances and executes them with proper parameter handling.",
          "is_bot": false,
          "headline": "Add abstract ToolClass base for LLM tools and expose param reflection…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T00:44:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "063a0fdd14829c07e0138a513ee88b0aec9b4efd",
          "body": "…boto3 to 1.43.58, upgrade uv to 0.12.0, and update the tinygrad submodule.\n\nRefresh cached model metadata and align frozen requirements with the new dependency versions.",
          "is_bot": false,
          "headline": "Bump MySQL Docker image to 9.7.2, upgrade boto3, botocore, and types‑…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T00:28:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 0,
      "commits_last_year": 4075,
      "latest_release_at": null,
      "latest_release_tag": null,
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 51,
      "days_since_latest_release": null,
      "mean_days_between_releases": null
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 42,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "omdev",
          "exists": true,
          "license": "BSD-3-Clause",
          "keywords": [
            "Intended Audience :: Developers",
            "Operating System :: OS Independent",
            "Operating System :: POSIX",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.14"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/omdev/",
          "is_deprecated": false,
          "latest_version": "0.0.35",
          "repository_url": "https://github.com/wrmsr/om",
          "versions_count": 585,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 2758,
          "first_published_at": "2024-08-27T16:05:04.836569Z",
          "latest_published_at": "2026-07-31T04:49:25.882405Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "omllm",
          "exists": true,
          "license": "BSD-3-Clause",
          "keywords": [
            "Intended Audience :: Developers",
            "Operating System :: OS Independent",
            "Operating System :: POSIX",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.14"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/omllm/",
          "is_deprecated": false,
          "latest_version": "0.0.35",
          "repository_url": "https://github.com/wrmsr/om",
          "versions_count": 9,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2026-07-14T19:33:15.590147Z",
          "latest_published_at": "2026-07-31T04:49:26.649241Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "omcore",
          "exists": true,
          "license": "BSD-3-Clause",
          "keywords": [
            "Intended Audience :: Developers",
            "Operating System :: OS Independent",
            "Operating System :: POSIX",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.14"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/omcore/",
          "is_deprecated": false,
          "latest_version": "0.0.35",
          "repository_url": "https://github.com/wrmsr/om",
          "versions_count": 8,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 804,
          "first_published_at": "2026-07-14T20:45:31.052768Z",
          "latest_published_at": "2026-07-31T04:49:14.561944Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "omxtra",
          "exists": true,
          "license": "BSD-3-Clause",
          "keywords": [
            "Intended Audience :: Developers",
            "Operating System :: OS Independent",
            "Operating System :: POSIX",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.14"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/omxtra/",
          "is_deprecated": false,
          "latest_version": "0.0.35",
          "repository_url": "https://github.com/wrmsr/om",
          "versions_count": 69,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2026-02-06T19:29:52.615753Z",
          "latest_published_at": "2026-07-31T04:49:17.544445Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "ominfra",
          "exists": true,
          "license": "BSD-3-Clause",
          "keywords": [
            "Intended Audience :: Developers",
            "Operating System :: OS Independent",
            "Operating System :: POSIX",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.14"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/ominfra/",
          "is_deprecated": false,
          "latest_version": "0.0.35",
          "repository_url": "https://github.com/wrmsr/om",
          "versions_count": 585,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 2516,
          "first_published_at": "2024-08-27T16:05:07.031671Z",
          "latest_published_at": "2026-07-31T04:49:20.380559Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        }
      ]
    },
    "popularity": {
      "forks": 0,
      "stars": 7,
      "watchers": 1,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": null,
      "open_issues_and_prs": 0
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "demos",
        "examples",
        "notebooks",
        "samples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "Makefile",
        "omdev/pyproject/tests/skeleton/Makefile"
      ],
      "api_schema_files": [
        "omxtra/specs/proto/tests/examples/addressbook.proto"
      ],
      "has_devcontainer": false,
      "typecheck_configs": [
        "omcore/py.typed",
        "omdev/py.typed",
        "ominfra/py.typed",
        "omllm/py.typed",
        "omxtra/py.typed",
        "x/pipdeptree/py.typed"
      ],
      "toolchain_manifests": [
        "omdev/rs/_boilerplate/Cargo.toml",
        "x/ommlds/nanochat/rustbpe/Cargo.toml"
      ],
      "largest_source_bytes": 1397928,
      "source_files_sampled": 4878,
      "oversized_source_files": 61,
      "agent_instruction_files": [
        "AGENTS.md"
      ],
      "agent_instruction_max_bytes": 3068
    },
    "dependencies": {
      "manifests": [
        "pyproject.toml",
        "requirements-ci.txt",
        "requirements-dev.txt",
        "requirements-ext.txt",
        "requirements-frz.txt",
        "requirements.txt"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "pyo3",
            "direct": false,
            "version": "0.27.2",
            "severity": "high",
            "ecosystem": "crates",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-36hh-v3qg-5jq4",
              "GHSA-chgr-c6px-7xpp",
              "RUSTSEC-2026-0176",
              "RUSTSEC-2026-0177"
            ],
            "fixed_version": "0.29.0",
            "advisory_count": 4,
            "oldest_advisory_days": 49
          },
          {
            "name": "diskcache",
            "direct": false,
            "version": "5.6.3",
            "severity": "moderate",
            "ecosystem": "pypi",
            "cvss_score": null,
            "advisory_ids": [
              "GHSA-w8v5-vhqr-4h9v",
              "PYSEC-2026-2447"
            ],
            "fixed_version": null,
            "advisory_count": 2,
            "oldest_advisory_days": 169
          },
          {
            "name": "pytest",
            "direct": false,
            "version": "8.3.4",
            "severity": "moderate",
            "ecosystem": "pypi",
            "cvss_score": 6.8,
            "advisory_ids": [
              "GHSA-6w46-j5rx-g56g",
              "PYSEC-2026-1845"
            ],
            "fixed_version": "9.0.3",
            "advisory_count": 2,
            "oldest_advisory_days": 189
          },
          {
            "name": "crossbeam-epoch",
            "direct": false,
            "version": "0.9.18",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2026-0204"
            ],
            "fixed_version": "0.9.20",
            "advisory_count": 1,
            "oldest_advisory_days": 24
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "high": 1,
          "unknown": 1,
          "moderate": 2
        },
        "advisory_count": 9,
        "affected_count": 4,
        "assessed_count": 371,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 69,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "pypi"
      ],
      "dependencies": [
        {
          "name": "omcore",
          "manifest": ".pkg/omcore-cext/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "== 0.0.36"
        },
        {
          "name": "omdev",
          "manifest": ".pkg/omdev-cext/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "== 0.0.36"
        },
        {
          "name": "omdev",
          "manifest": ".pkg/omdev-cli/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "== 0.0.36"
        },
        {
          "name": "omdev",
          "manifest": ".pkg/omdev-rs/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "== 0.0.36"
        },
        {
          "name": "omcore",
          "manifest": ".pkg/omdev/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "== 0.0.36"
        },
        {
          "name": "omcore",
          "manifest": ".pkg/ominfra/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "== 0.0.36"
        },
        {
          "name": "omcore",
          "manifest": ".pkg/omllm/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "== 0.0.36"
        },
        {
          "name": "omxtra",
          "manifest": ".pkg/omxtra-cext/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "== 0.0.36"
        },
        {
          "name": "omcore",
          "manifest": ".pkg/omxtra/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "== 0.0.36"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "omcore",
            "direct": true,
            "version": "0.0.36",
            "ecosystem": "pypi"
          },
          {
            "name": "omdev",
            "direct": true,
            "version": "0.0.36",
            "ecosystem": "pypi"
          },
          {
            "name": "omxtra",
            "direct": true,
            "version": "0.0.36",
            "ecosystem": "pypi"
          },
          {
            "name": "ahash",
            "direct": false,
            "version": "0.8.12",
            "ecosystem": "crates"
          },
          {
            "name": "aho-corasick",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "arc-swap",
            "direct": false,
            "version": "1.8.2",
            "ecosystem": "crates"
          },
          {
            "name": "autocfg",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "bit-set",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "crates"
          },
          {
            "name": "bit-vec",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "crates"
          },
          {
            "name": "castaway",
            "direct": false,
            "version": "0.2.4",
            "ecosystem": "crates"
          },
          {
            "name": "cfg-if",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "crates"
          },
          {
            "name": "compact_str",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "crates"
          },
          {
            "name": "crossbeam-deque",
            "direct": false,
            "version": "0.8.6",
            "ecosystem": "crates"
          },
          {
            "name": "crossbeam-epoch",
            "direct": false,
            "version": "0.9.18",
            "ecosystem": "crates"
          },
          {
            "name": "crossbeam-utils",
            "direct": false,
            "version": "0.8.21",
            "ecosystem": "crates"
          },
          {
            "name": "dary_heap",
            "direct": false,
            "version": "0.3.8",
            "ecosystem": "crates"
          },
          {
            "name": "either",
            "direct": false,
            "version": "1.15.0",
            "ecosystem": "crates"
          },
          {
            "name": "equivalent",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "crates"
          },
          {
            "name": "fancy-regex",
            "direct": false,
            "version": "0.16.2",
            "ecosystem": "crates"
          },
          {
            "name": "getrandom",
            "direct": false,
            "version": "0.3.4",
            "ecosystem": "crates"
          },
          {
            "name": "hashbrown",
            "direct": false,
            "version": "0.17.0",
            "ecosystem": "crates"
          },
          {
            "name": "heck",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "indexmap",
            "direct": false,
            "version": "2.14.0",
            "ecosystem": "crates"
          },
          {
            "name": "indoc",
            "direct": false,
            "version": "2.0.7",
            "ecosystem": "crates"
          },
          {
            "name": "itoa",
            "direct": false,
            "version": "1.0.15",
            "ecosystem": "crates"
          },
          {
            "name": "libc",
            "direct": false,
            "version": "0.2.184",
            "ecosystem": "crates"
          },
          {
            "name": "libc",
            "direct": false,
            "version": "0.2.188",
            "ecosystem": "crates"
          },
          {
            "name": "log",
            "direct": false,
            "version": "0.4.29",
            "ecosystem": "crates"
          },
          {
            "name": "memchr",
            "direct": false,
            "version": "2.7.6",
            "ecosystem": "crates"
          },
          {
            "name": "memoffset",
            "direct": false,
            "version": "0.9.1",
            "ecosystem": "crates"
          },
          {
            "name": "once_cell",
            "direct": false,
            "version": "1.21.4",
            "ecosystem": "crates"
          },
          {
            "name": "portable-atomic",
            "direct": false,
            "version": "1.13.1",
            "ecosystem": "crates"
          },
          {
            "name": "portable-atomic",
            "direct": false,
            "version": "1.14.0",
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro2",
            "direct": false,
            "version": "1.0.106",
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro2",
            "direct": false,
            "version": "1.0.107",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-build-config",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-build-config",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-ffi",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-ffi",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-log",
            "direct": false,
            "version": "0.13.3",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-macros",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-macros",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-macros-backend",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-macros-backend",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "crates"
          },
          {
            "name": "quote",
            "direct": false,
            "version": "1.0.45",
            "ecosystem": "crates"
          },
          {
            "name": "quote",
            "direct": false,
            "version": "1.0.47",
            "ecosystem": "crates"
          },
          {
            "name": "r-efi",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "rayon",
            "direct": false,
            "version": "1.12.0",
            "ecosystem": "crates"
          },
          {
            "name": "rayon-core",
            "direct": false,
            "version": "1.13.0",
            "ecosystem": "crates"
          },
          {
            "name": "regex-automata",
            "direct": false,
            "version": "0.4.13",
            "ecosystem": "crates"
          },
          {
            "name": "regex-syntax",
            "direct": false,
            "version": "0.8.8",
            "ecosystem": "crates"
          },
          {
            "name": "rustversion",
            "direct": false,
            "version": "1.0.22",
            "ecosystem": "crates"
          },
          {
            "name": "ryu",
            "direct": false,
            "version": "1.0.20",
            "ecosystem": "crates"
          },
          {
            "name": "static_assertions",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "syn",
            "direct": false,
            "version": "2.0.117",
            "ecosystem": "crates"
          },
          {
            "name": "syn",
            "direct": false,
            "version": "2.0.119",
            "ecosystem": "crates"
          },
          {
            "name": "target-lexicon",
            "direct": false,
            "version": "0.13.5",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-ident",
            "direct": false,
            "version": "1.0.24",
            "ecosystem": "crates"
          },
          {
            "name": "unindent",
            "direct": false,
            "version": "0.2.4",
            "ecosystem": "crates"
          },
          {
            "name": "version_check",
            "direct": false,
            "version": "0.9.5",
            "ecosystem": "crates"
          },
          {
            "name": "wasip2",
            "direct": false,
            "version": "1.0.1+wasi-0.2.4",
            "ecosystem": "crates"
          },
          {
            "name": "wit-bindgen",
            "direct": false,
            "version": "0.46.0",
            "ecosystem": "crates"
          },
          {
            "name": "zerocopy",
            "direct": false,
            "version": "0.8.27",
            "ecosystem": "crates"
          },
          {
            "name": "zerocopy-derive",
            "direct": false,
            "version": "0.8.27",
            "ecosystem": "crates"
          },
          {
            "name": "aiohappyeyeballs",
            "direct": false,
            "version": "2.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "aiohttp",
            "direct": false,
            "version": "3.14.3",
            "ecosystem": "pypi"
          },
          {
            "name": "aiohttp-jinja2",
            "direct": false,
            "version": "1.6",
            "ecosystem": "pypi"
          },
          {
            "name": "aiomysql",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "aiomysql",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "aiosignal",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "aiosqlite",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "aiosqlite",
            "direct": false,
            "version": "0.22.1",
            "ecosystem": "pypi"
          },
          {
            "name": "annotated-doc",
            "direct": false,
            "version": "0.0.5",
            "ecosystem": "pypi"
          },
          {
            "name": "antlr4-python3-runtime",
            "direct": false,
            "version": "4.13.2",
            "ecosystem": "pypi"
          },
          {
            "name": "anyio",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "anyio",
            "direct": false,
            "version": "4.14.2",
            "ecosystem": "pypi"
          },
          {
            "name": "anyio",
            "direct": false,
            "version": "4.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "apsw",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "apsw",
            "direct": false,
            "version": "3.53.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "asgiref",
            "direct": false,
            "version": "3.12.1",
            "ecosystem": "pypi"
          },
          {
            "name": "asn1crypto",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "ast-serialize",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "astpretty",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "asttokens",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "asttokens",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "asyncpg",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "asyncpg",
            "direct": false,
            "version": "0.30.0",
            "ecosystem": "pypi"
          },
          {
            "name": "asyncpg",
            "direct": false,
            "version": "0.31.0",
            "ecosystem": "pypi"
          },
          {
            "name": "asyncpg-stubs",
            "direct": false,
            "version": "0.31.3",
            "ecosystem": "pypi"
          },
          {
            "name": "asyncssh",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "asyncssh",
            "direct": false,
            "version": "2.24.0",
            "ecosystem": "pypi"
          },
          {
            "name": "attrs",
            "direct": false,
            "version": "26.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "basedpyright",
            "direct": false,
            "version": "1.39.9",
            "ecosystem": "pypi"
          },
          {
            "name": "bcrypt",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "bitsandbytes",
            "direct": false,
            "version": "0.50.0",
            "ecosystem": "pypi"
          },
          {
            "name": "black",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "black",
            "direct": false,
            "version": "26.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "blobfile",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "boto3",
            "direct": false,
            "version": "1.43.60",
            "ecosystem": "pypi"
          },
          {
            "name": "botocore",
            "direct": false,
            "version": "1.43.60",
            "ecosystem": "pypi"
          },
          {
            "name": "botocore-stubs",
            "direct": false,
            "version": "1.43.14",
            "ecosystem": "pypi"
          },
          {
            "name": "brotli",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "brotli",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "build",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "build",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "cbor2",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "cbor2",
            "direct": false,
            "version": "6.1.3",
            "ecosystem": "pypi"
          },
          {
            "name": "certifi",
            "direct": false,
            "version": "2026.7.22",
            "ecosystem": "pypi"
          },
          {
            "name": "cffi",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "charset-normalizer",
            "direct": false,
            "version": "3.4.9",
            "ecosystem": "pypi"
          },
          {
            "name": "click",
            "direct": false,
            "version": "8.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "cloudpickle",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "cloudpickle",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "contourpy",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "pypi"
          },
          {
            "name": "cramjam",
            "direct": false,
            "version": "2.11.0",
            "ecosystem": "pypi"
          },
          {
            "name": "cryptography",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "cryptography",
            "direct": false,
            "version": "49.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "cycler",
            "direct": false,
            "version": "0.12.1",
            "ecosystem": "pypi"
          },
          {
            "name": "cython",
            "direct": false,
            "version": "3.2.9",
            "ecosystem": "pypi"
          },
          {
            "name": "datasets",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ddgs",
            "direct": false,
            "version": "9.14.4",
            "ecosystem": "pypi"
          },
          {
            "name": "debugpy",
            "direct": false,
            "version": "1.8.21",
            "ecosystem": "pypi"
          },
          {
            "name": "decorator",
            "direct": false,
            "version": "5.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "deno",
            "direct": false,
            "version": "2.9.4",
            "ecosystem": "pypi"
          },
          {
            "name": "diffusers",
            "direct": false,
            "version": "0.39.0",
            "ecosystem": "pypi"
          },
          {
            "name": "dill",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "diskcache",
            "direct": false,
            "version": "5.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "docutils",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "docutils",
            "direct": false,
            "version": "0.23",
            "ecosystem": "pypi"
          },
          {
            "name": "docutils-stubs",
            "direct": false,
            "version": "0.0.22",
            "ecosystem": "pypi"
          },
          {
            "name": "duckdb",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "duckdb",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "pypi"
          },
          {
            "name": "execnet",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "executing",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "executing",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "fake-useragent",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "filelock",
            "direct": false,
            "version": "3.32.2",
            "ecosystem": "pypi"
          },
          {
            "name": "flake8",
            "direct": false,
            "version": "7.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "flake8-pyproject",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "pypi"
          },
          {
            "name": "flatbuffers",
            "direct": false,
            "version": "25.12.19",
            "ecosystem": "pypi"
          },
          {
            "name": "fonttools",
            "direct": false,
            "version": "4.63.0",
            "ecosystem": "pypi"
          },
          {
            "name": "frozenlist",
            "direct": false,
            "version": "1.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "fsspec",
            "direct": false,
            "version": "2026.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "gguf",
            "direct": false,
            "version": "0.19.0",
            "ecosystem": "pypi"
          },
          {
            "name": "google-api-core",
            "direct": false,
            "version": "2.33.0",
            "ecosystem": "pypi"
          },
          {
            "name": "google-api-python-client",
            "direct": false,
            "version": "2.198.0",
            "ecosystem": "pypi"
          },
          {
            "name": "google-auth",
            "direct": false,
            "version": "2.56.2",
            "ecosystem": "pypi"
          },
          {
            "name": "google-auth-httplib2",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "google-cloud-compute",
            "direct": false,
            "version": "1.50.0",
            "ecosystem": "pypi"
          },
          {
            "name": "googleapis-common-protos",
            "direct": false,
            "version": "1.75.0",
            "ecosystem": "pypi"
          },
          {
            "name": "gprof2dot",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "gprof2dot",
            "direct": false,
            "version": "2025.4.14",
            "ecosystem": "pypi"
          },
          {
            "name": "greenlet",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "greenlet",
            "direct": false,
            "version": "3.5.4",
            "ecosystem": "pypi"
          },
          {
            "name": "grpcio",
            "direct": false,
            "version": "1.83.0",
            "ecosystem": "pypi"
          },
          {
            "name": "grpcio-status",
            "direct": false,
            "version": "1.83.0",
            "ecosystem": "pypi"
          },
          {
            "name": "guppy3",
            "direct": false,
            "version": "3.1.7",
            "ecosystem": "pypi"
          },
          {
            "name": "h11",
            "direct": false,
            "version": "0.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "h2",
            "direct": false,
            "version": "4.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "hf-xet",
            "direct": false,
            "version": "1.5.2",
            "ecosystem": "pypi"
          },
          {
            "name": "hpack",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "httpcore",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "pypi"
          },
          {
            "name": "httplib2",
            "direct": false,
            "version": "0.32.0",
            "ecosystem": "pypi"
          },
          {
            "name": "httpx",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "httpx",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "pypi"
          },
          {
            "name": "huggingface-hub",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "huggingface-hub",
            "direct": false,
            "version": "1.24.0",
            "ecosystem": "pypi"
          },
          {
            "name": "hyperframe",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "id",
            "direct": false,
            "version": "1.6.1",
            "ecosystem": "pypi"
          },
          {
            "name": "idna",
            "direct": false,
            "version": "3.18",
            "ecosystem": "pypi"
          },
          {
            "name": "imageio",
            "direct": false,
            "version": "2.37.4",
            "ecosystem": "pypi"
          },
          {
            "name": "importlib-metadata",
            "direct": false,
            "version": "9.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "iniconfig",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "invoke",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "ipython",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "ipython",
            "direct": false,
            "version": "9.15.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ipython-pygments-lexers",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "jaraco-classes",
            "direct": false,
            "version": "3.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jaraco-context",
            "direct": false,
            "version": "6.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "jaraco-functools",
            "direct": false,
            "version": "4.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jedi",
            "direct": false,
            "version": "0.20.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jinja2",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "jinja2",
            "direct": false,
            "version": "3.1.6",
            "ecosystem": "pypi"
          },
          {
            "name": "jmespath",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "joblib",
            "direct": false,
            "version": "1.5.3",
            "ecosystem": "pypi"
          },
          {
            "name": "json5",
            "direct": false,
            "version": "0.15.0",
            "ecosystem": "pypi"
          },
          {
            "name": "keyring",
            "direct": false,
            "version": "25.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "kiwisolver",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "lazy-loader",
            "direct": false,
            "version": "0.5",
            "ecosystem": "pypi"
          },
          {
            "name": "librt",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "linkify-it-py",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "llama-cpp-python",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "llama-cpp-python",
            "direct": false,
            "version": "0.3.34",
            "ecosystem": "pypi"
          },
          {
            "name": "lxml",
            "direct": false,
            "version": "6.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "lxml-stubs",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "lz4",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "lz4",
            "direct": false,
            "version": "4.4.5",
            "ecosystem": "pypi"
          },
          {
            "name": "markdown-it-py",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "markdown-it-py",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "markupsafe",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "markupsafe",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "matplotlib",
            "direct": false,
            "version": "3.11.1",
            "ecosystem": "pypi"
          },
          {
            "name": "matplotlib-inline",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "pypi"
          },
          {
            "name": "mccabe",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mdit-py-plugins",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mdit-py-plugins",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "pypi"
          },
          {
            "name": "mdurl",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "memray",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "memray",
            "direct": false,
            "version": "1.19.3",
            "ecosystem": "pypi"
          },
          {
            "name": "mlx",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mlx",
            "direct": false,
            "version": "0.32.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mlx-lm",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mlx-lm",
            "direct": false,
            "version": "0.31.3",
            "ecosystem": "pypi"
          },
          {
            "name": "mlx-metal",
            "direct": false,
            "version": "0.32.0",
            "ecosystem": "pypi"
          },
          {
            "name": "more-itertools",
            "direct": false,
            "version": "11.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mpmath",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "msgpack",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "multidict",
            "direct": false,
            "version": "6.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "multiprocess",
            "direct": false,
            "version": "0.70.19",
            "ecosystem": "pypi"
          },
          {
            "name": "mwparserfromhell",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mwparserfromhell",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "pypi"
          },
          {
            "name": "mypy",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mypy",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mypy-extensions",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mysql-connector-python",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mysql-connector-python",
            "direct": false,
            "version": "9.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mysqlclient",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mysqlclient",
            "direct": false,
            "version": "2.2.8",
            "ecosystem": "pypi"
          },
          {
            "name": "narwhals",
            "direct": false,
            "version": "2.24.0",
            "ecosystem": "pypi"
          },
          {
            "name": "networkx",
            "direct": false,
            "version": "3.6.1",
            "ecosystem": "pypi"
          },
          {
            "name": "nh3",
            "direct": false,
            "version": "0.3.6",
            "ecosystem": "pypi"
          },
          {
            "name": "nodeenv",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "pypi"
          },
          {
            "name": "nodejs-wheel-binaries",
            "direct": false,
            "version": "24.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "numpy",
            "direct": false,
            "version": "2.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "objgraph",
            "direct": false,
            "version": "3.6.2",
            "ecosystem": "pypi"
          },
          {
            "name": "ominfra",
            "direct": false,
            "version": "0.0.36",
            "ecosystem": "pypi"
          },
          {
            "name": "omllm",
            "direct": false,
            "version": "0.0.36",
            "ecosystem": "pypi"
          },
          {
            "name": "onnxruntime",
            "direct": false,
            "version": "1.28.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opencv-python",
            "direct": false,
            "version": "5.0.0.93",
            "ecosystem": "pypi"
          },
          {
            "name": "orjson",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "orjson",
            "direct": false,
            "version": "3.11.9",
            "ecosystem": "pypi"
          },
          {
            "name": "outcome",
            "direct": false,
            "version": "1.3.0.post0",
            "ecosystem": "pypi"
          },
          {
            "name": "packaging",
            "direct": false,
            "version": "26.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pandas",
            "direct": false,
            "version": "3.0.5",
            "ecosystem": "pypi"
          },
          {
            "name": "paramiko",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "paramiko",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "parso",
            "direct": false,
            "version": "0.8.7",
            "ecosystem": "pypi"
          },
          {
            "name": "pathspec",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pcpp",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pcpp",
            "direct": false,
            "version": "1.30",
            "ecosystem": "pypi"
          },
          {
            "name": "pexpect",
            "direct": false,
            "version": "4.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pg8000",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pg8000",
            "direct": false,
            "version": "1.31.5",
            "ecosystem": "pypi"
          },
          {
            "name": "pillow",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pillow",
            "direct": false,
            "version": "12.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "platformdirs",
            "direct": false,
            "version": "4.11.0",
            "ecosystem": "pypi"
          },
          {
            "name": "playwright",
            "direct": false,
            "version": "1.61.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pluggy",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pprintpp",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "primp",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "priority",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "prompt-toolkit",
            "direct": false,
            "version": "3.0.53",
            "ecosystem": "pypi"
          },
          {
            "name": "propcache",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "pypi"
          },
          {
            "name": "proto-plus",
            "direct": false,
            "version": "1.28.2",
            "ecosystem": "pypi"
          },
          {
            "name": "protobuf",
            "direct": false,
            "version": "7.35.1",
            "ecosystem": "pypi"
          },
          {
            "name": "psutil",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "psutil",
            "direct": false,
            "version": "7.2.2",
            "ecosystem": "pypi"
          },
          {
            "name": "psycopg",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "psycopg",
            "direct": false,
            "version": "3.3.4",
            "ecosystem": "pypi"
          },
          {
            "name": "psycopg2",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "psycopg2",
            "direct": false,
            "version": "2.9.12",
            "ecosystem": "pypi"
          },
          {
            "name": "ptyprocess",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pudb",
            "direct": false,
            "version": "2025.1.5",
            "ecosystem": "pypi"
          },
          {
            "name": "pure-eval",
            "direct": false,
            "version": "0.2.3",
            "ecosystem": "pypi"
          },
          {
            "name": "py-cpuinfo",
            "direct": false,
            "version": "9.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyarrow",
            "direct": false,
            "version": "25.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyasn1",
            "direct": false,
            "version": "0.6.4",
            "ecosystem": "pypi"
          },
          {
            "name": "pyasn1-modules",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pyclipper",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pycodestyle",
            "direct": false,
            "version": "2.14.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pycparser",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pycparser",
            "direct": false,
            "version": "3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pycryptodomex",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-monty",
            "direct": false,
            "version": "0.0.19",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-monty-runtime",
            "direct": false,
            "version": "0.0.19",
            "ecosystem": "pypi"
          },
          {
            "name": "pyee",
            "direct": false,
            "version": "13.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pyflakes",
            "direct": false,
            "version": "3.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pygments",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pygments",
            "direct": false,
            "version": "2.20.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyinstrument",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pyjwt",
            "direct": false,
            "version": "2.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pymysql",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pymysql",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pynacl",
            "direct": false,
            "version": "1.6.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pyopenssl",
            "direct": false,
            "version": "26.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyparsing",
            "direct": false,
            "version": "3.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pyproject-hooks",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyright",
            "direct": false,
            "version": "1.1.411",
            "ecosystem": "pypi"
          },
          {
            "name": "pytesseract",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytesseract",
            "direct": false,
            "version": "0.3.13",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytest",
            "direct": false,
            "version": "8.3.4",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest",
            "direct": false,
            "version": "9.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-benchmark",
            "direct": false,
            "version": "5.2.3",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-clarity",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-mock",
            "direct": false,
            "version": "3.15.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-stress",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-subprocess",
            "direct": false,
            "version": "1.6.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-snappy",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "python-snappy",
            "direct": false,
            "version": "0.7.3",
            "ecosystem": "pypi"
          },
          {
            "name": "pytokens",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytz",
            "direct": false,
            "version": "2026.3.post1",
            "ecosystem": "pypi"
          },
          {
            "name": "pyyaml",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pyyaml",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pyyaml",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "rapidocr-onnxruntime",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "rapidocr-onnxruntime",
            "direct": false,
            "version": "1.4.4",
            "ecosystem": "pypi"
          },
          {
            "name": "readme-renderer",
            "direct": false,
            "version": "45.0",
            "ecosystem": "pypi"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "2026.7.19",
            "ecosystem": "pypi"
          },
          {
            "name": "requests",
            "direct": false,
            "version": "2.34.2",
            "ecosystem": "pypi"
          },
          {
            "name": "requests-toolbelt",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "rfc3986",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "rich",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "rich",
            "direct": false,
            "version": "15.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ripgrep",
            "direct": false,
            "version": "15.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ruff",
            "direct": false,
            "version": "0.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "s3transfer",
            "direct": false,
            "version": "0.19.2",
            "ecosystem": "pypi"
          },
          {
            "name": "safetensors",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "scikit-image",
            "direct": false,
            "version": "0.26.0",
            "ecosystem": "pypi"
          },
          {
            "name": "scikit-learn",
            "direct": false,
            "version": "1.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "scipy",
            "direct": false,
            "version": "1.18.0",
            "ecosystem": "pypi"
          },
          {
            "name": "scramp",
            "direct": false,
            "version": "1.4.15",
            "ecosystem": "pypi"
          },
          {
            "name": "segno",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "segno",
            "direct": false,
            "version": "1.6.6",
            "ecosystem": "pypi"
          },
          {
            "name": "sentence-transformers",
            "direct": false,
            "version": "5.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sentencepiece",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "pypi"
          },
          {
            "name": "setuptools",
            "direct": false,
            "version": "83.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "shapely",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "shellingham",
            "direct": false,
            "version": "1.5.4",
            "ecosystem": "pypi"
          },
          {
            "name": "six",
            "direct": false,
            "version": "1.17.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sniffio",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sniffio",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "snowflake-connector-python",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "snowflake-connector-python",
            "direct": false,
            "version": "4.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "socksio",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sortedcontainers",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sqlalchemy",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sqlalchemy",
            "direct": false,
            "version": "2.0.51",
            "ecosystem": "pypi"
          },
          {
            "name": "sqlean-py",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sqlean-py",
            "direct": false,
            "version": "3.50.4.5",
            "ecosystem": "pypi"
          },
          {
            "name": "sqlite-vec",
            "direct": false,
            "version": "0.1.9",
            "ecosystem": "pypi"
          },
          {
            "name": "stack-data",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "sympy",
            "direct": false,
            "version": "1.14.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tavily-python",
            "direct": false,
            "version": "0.7.26",
            "ecosystem": "pypi"
          },
          {
            "name": "textual",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "textual",
            "direct": false,
            "version": "8.2.8",
            "ecosystem": "pypi"
          },
          {
            "name": "textual-dev",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "textual-dev",
            "direct": false,
            "version": "1.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "textual-serve",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "pypi"
          },
          {
            "name": "textual-speedups",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "textual-speedups",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "threadpoolctl",
            "direct": false,
            "version": "3.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tifffile",
            "direct": false,
            "version": "2026.7.14",
            "ecosystem": "pypi"
          },
          {
            "name": "tiktoken",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tinygrad",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "tokenizers",
            "direct": false,
            "version": "0.22.2",
            "ecosystem": "pypi"
          },
          {
            "name": "tomlkit",
            "direct": false,
            "version": "0.15.1",
            "ecosystem": "pypi"
          },
          {
            "name": "torch",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "torch",
            "direct": false,
            "version": "2.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "torchvision",
            "direct": false,
            "version": "0.28.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tqdm",
            "direct": false,
            "version": "4.70.0",
            "ecosystem": "pypi"
          },
          {
            "name": "traitlets",
            "direct": false,
            "version": "5.15.1",
            "ecosystem": "pypi"
          },
          {
            "name": "transformers",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "transformers",
            "direct": false,
            "version": "5.11.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter",
            "direct": false,
            "version": "0.26.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-bash",
            "direct": false,
            "version": "0.25.1",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-css",
            "direct": false,
            "version": "0.25.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-go",
            "direct": false,
            "version": "0.25.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-html",
            "direct": false,
            "version": "0.23.2",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-java",
            "direct": false,
            "version": "0.23.5",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-javascript",
            "direct": false,
            "version": "0.25.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-json",
            "direct": false,
            "version": "0.24.8",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-markdown",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-python",
            "direct": false,
            "version": "0.25.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-regex",
            "direct": false,
            "version": "0.25.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-rust",
            "direct": false,
            "version": "0.24.2",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-sql",
            "direct": false,
            "version": "0.3.11",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-toml",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-xml",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-yaml",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "pypi"
          },
          {
            "name": "trino",
            "direct": false,
            "version": "0.338.0",
            "ecosystem": "pypi"
          },
          {
            "name": "trio",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "trio",
            "direct": false,
            "version": "0.33.0",
            "ecosystem": "pypi"
          },
          {
            "name": "trio-asyncio",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "twine",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "twine",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "typer",
            "direct": false,
            "version": "0.27.0",
            "ecosystem": "pypi"
          },
          {
            "name": "types-awscrt",
            "direct": false,
            "version": "0.34.1",
            "ecosystem": "pypi"
          },
          {
            "name": "types-boto3",
            "direct": false,
            "version": "1.43.60",
            "ecosystem": "pypi"
          },
          {
            "name": "types-docutils",
            "direct": false,
            "version": "0.22.3.20260724",
            "ecosystem": "pypi"
          },
          {
            "name": "types-greenlet",
            "direct": false,
            "version": "3.5.0.20260518",
            "ecosystem": "pypi"
          },
          {
            "name": "types-paramiko",
            "direct": false,
            "version": "5.0.0.20260724",
            "ecosystem": "pypi"
          },
          {
            "name": "types-psutil",
            "direct": false,
            "version": "7.2.2.20260518",
            "ecosystem": "pypi"
          },
          {
            "name": "types-pygments",
            "direct": false,
            "version": "2.20.0.20260728",
            "ecosystem": "pypi"
          },
          {
            "name": "types-pymysql",
            "direct": false,
            "version": "1.2.0.20260724",
            "ecosystem": "pypi"
          },
          {
            "name": "types-pyyaml",
            "direct": false,
            "version": "6.0.12.20260724",
            "ecosystem": "pypi"
          },
          {
            "name": "types-regex",
            "direct": false,
            "version": "2026.7.19.20260720",
            "ecosystem": "pypi"
          },
          {
            "name": "types-s3transfer",
            "direct": false,
            "version": "0.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "types-setuptools",
            "direct": false,
            "version": "83.0.0.20260724",
            "ecosystem": "pypi"
          },
          {
            "name": "types-ujson",
            "direct": false,
            "version": "5.10.0.20250822",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-extensions",
            "direct": false,
            "version": "4.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tzlocal",
            "direct": false,
            "version": "5.4.4",
            "ecosystem": "pypi"
          },
          {
            "name": "uc-micro-py",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ujson",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "ujson",
            "direct": false,
            "version": "5.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "unicorn",
            "direct": false,
            "version": "2.1.4",
            "ecosystem": "pypi"
          },
          {
            "name": "uritemplate",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "urllib3",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "urwid",
            "direct": false,
            "version": "4.0.8",
            "ecosystem": "pypi"
          },
          {
            "name": "urwid-readline",
            "direct": false,
            "version": "0.15.1",
            "ecosystem": "pypi"
          },
          {
            "name": "uv",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "uv",
            "direct": false,
            "version": "0.12.0",
            "ecosystem": "pypi"
          },
          {
            "name": "uvicorn",
            "direct": false,
            "version": "0.51.0",
            "ecosystem": "pypi"
          },
          {
            "name": "watchdog",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "wcwidth",
            "direct": false,
            "version": "0.8.2",
            "ecosystem": "pypi"
          },
          {
            "name": "wheel",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "wheel",
            "direct": false,
            "version": "0.47.0",
            "ecosystem": "pypi"
          },
          {
            "name": "wikitextparser",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "wikitextparser",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "wsproto",
            "direct": false,
            "version": "1.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "xxhash",
            "direct": false,
            "version": "3.8.1",
            "ecosystem": "pypi"
          },
          {
            "name": "yappi",
            "direct": false,
            "version": "1.7.6",
            "ecosystem": "pypi"
          },
          {
            "name": "yarl",
            "direct": false,
            "version": "1.24.5",
            "ecosystem": "pypi"
          },
          {
            "name": "zipp",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "zstandard",
            "direct": false,
            "version": "0.25.0",
            "ecosystem": "pypi"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 440,
        "direct_count": 3,
        "indirect_count": 437
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 0,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 0
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "wrmsr",
          "commits": 14002,
          "avatar_url": "https://avatars.githubusercontent.com/u/559096?v=4"
        }
      ],
      "contributors_sampled": 1,
      "top_contributor_share": 1
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [],
      "has_editorconfig": true,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "Cargo.lock"
      ],
      "scorecard": null,
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-31T04:50:53Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": null,
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/wrmsr/om",
    "host": "github.com",
    "name": "om",
    "owner": "wrmsr"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "at_risk",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 48,
      "inputs": {
        "security": 21,
        "vitality": 60,
        "community": 38,
        "governance": 52,
        "engineering": 61
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "moderate",
        "name": "Vitality",
        "value": 60,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "commits_last_year": 4075,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 51
            },
            "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": "51/52 weeks with commits",
                "points": 35.3,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 51
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "4075 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 4075
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "OpenSSF Scorecard unavailable",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "critical",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "releases_count": 0
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "no releases published",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases_published",
                    "params": {}
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "no releases",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases",
                    "params": {}
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "no releases",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases",
                    "params": {}
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "OpenSSF Scorecard unavailable",
                "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": "at_risk",
        "name": "Community & Adoption",
        "value": 38,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 13,
            "inputs": {
              "forks": 0,
              "stars": 7,
              "watchers": 1,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "7 stars",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "0 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "1 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (BSD-3-Clause)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "BSD-3-Clause"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "moderate",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 63,
            "inputs": {
              "packages": [
                "omdev",
                "omllm",
                "omcore",
                "omxtra",
                "ominfra"
              ],
              "dependents": null,
              "ecosystems": "pypi",
              "total_downloads": null,
              "monthly_downloads": 6078
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "6,078 downloads/month across pypi",
                "points": 50.5,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 6078,
                      "ecosystems": "pypi"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 52,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 12,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 1,
              "top_contributor_share": 1
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 100% of commits",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "1 contributors",
                "points": 1.4,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "OpenSSF Scorecard unavailable",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 62,
            "inputs": {
              "followers": 92,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "wrmsr",
              "public_repos": 240,
              "account_age_days": 5678
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "92 followers of wrmsr",
                "points": 14.2,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 92,
                      "login": "wrmsr"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "240 public repos, account ~15 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 240
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 15
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "omdev",
                "omllm",
                "omcore",
                "omxtra",
                "ominfra"
              ],
              "ecosystems": "pypi",
              "any_deprecated": false,
              "min_days_since_publish": 0
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "5 package(s) on pypi",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 5,
                      "ecosystems": "pypi"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 0 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "585 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 585
                    }
                  }
                ],
                "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": "moderate",
        "name": "Engineering Quality",
        "value": 61,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "1 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "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": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "OpenSSF Scorecard unavailable",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": false,
              "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": 0,
                "status": "missed",
                "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": "critical",
        "name": "Security",
        "value": 21,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "critical",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Dependency lockfiles. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "dependency_lockfiles"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 1,
            "inputs": {
              "source": "file_signals",
              "lockfiles": [
                "Cargo.lock"
              ],
              "manifests": [
                "pyproject.toml",
                "requirements-ci.txt",
                "requirements-dev.txt",
                "requirements-ext.txt",
                "requirements-frz.txt",
                "requirements.txt"
              ],
              "has_codeql_workflow": false,
              "has_security_policy": false,
              "has_dependabot_config": false
            },
            "components": [
              {
                "key": "security_policy_security_md",
                "name": "Security policy (SECURITY.md)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 30
              },
              {
                "key": "dependabot_config",
                "name": "Dependabot config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "dependency_lockfiles",
                "name": "Dependency lockfiles",
                "detail": "published library — lockfiles are an application concern, not expected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "lockfiles_not_expected",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "codeql_workflow",
                "name": "CodeQL workflow",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 371 resolved dependencies against OSV; 69 could not be assessed (no resolved version, an unsupported ecosystem, or beyond the reported package list). This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories",
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 371
                }
              },
              {
                "code": "advisories_unassessed",
                "params": {
                  "count": 69
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 9,
              "affected_packages": 4,
              "assessed_packages": 371,
              "unassessed_packages": 69,
              "affected_by_severity": "high 1, moderate 2, unknown 1",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 371,
              "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": 2
            },
            "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": 77,
        "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": 0.9,
              "agent_instruction_files": [
                "AGENTS.md"
              ],
              "agent_instruction_max_bytes": 3068
            },
            "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": "90 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 90,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "Cargo.lock"
              ],
              "has_dockerfile": true,
              "typed_language": false,
              "bootstrap_files": [
                "Makefile",
                "omdev/pyproject/tests/skeleton/Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [
                "omcore/py.typed",
                "omdev/py.typed",
                "ominfra/py.typed",
                "omllm/py.typed",
                "omxtra/py.typed",
                "x/pipdeptree/py.typed"
              ],
              "agent_commit_share": 0,
              "toolchain_manifests": [
                "omdev/rs/_boilerplate/Cargo.toml",
                "x/ommlds/nanochat/rustbpe/Cargo.toml"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Makefile, omdev/pyproject/tests/skeleton/Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Makefile, omdev/pyproject/tests/skeleton/Makefile"
                    }
                  }
                ],
                "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": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "omcore/py.typed, omdev/py.typed, ominfra/py.typed, omllm/py.typed, omxtra/py.typed, x/pipdeptree/py.typed",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "omcore/py.typed, omdev/py.typed, ominfra/py.typed, omllm/py.typed, omxtra/py.typed, x/pipdeptree/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": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "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": "OpenSSF Scorecard unavailable",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "good",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 81,
            "inputs": {
              "primary_language": "Python",
              "largest_source_bytes": 1397928,
              "source_files_sampled": 4878,
              "oversized_source_files": 61
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Python with type-check config (omcore/py.typed, omdev/py.typed, ominfra/py.typed, omllm/py.typed, omxtra/py.typed, x/pipdeptree/py.typed)",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "typecheck_config_language",
                    "params": {
                      "files": "omcore/py.typed, omdev/py.typed, ominfra/py.typed, omllm/py.typed, omxtra/py.typed, x/pipdeptree/py.typed",
                      "language": "Python"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "61/4878 source files over 60KB",
                "points": 54.3,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 4878,
                      "oversized": 61
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "good",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "example_dirs": [
                "demos",
                "examples",
                "notebooks",
                "samples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": [
                "omxtra/specs/proto/tests/examples/addressbook.proto"
              ]
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": "omxtra/specs/proto/tests/examples/addressbook.proto",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "omxtra/specs/proto/tests/examples/addressbook.proto"
                    }
                  }
                ],
                "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": "demos, examples, notebooks, samples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "demos, examples, notebooks, samples"
                    }
                  }
                ],
                "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 'omdev.cexts._boilerplate' from its registry",
    "Could not fetch pypi package 'omcore._check' from its registry",
    "Could not fetch pypi package 'omxtra.collections.stl._stl' from its registry",
    "deps.dev does not index pypi:omdev@0.0.35; advisories assessed against the repository dependency graph instead",
    "OpenSSF Scorecard did not return a usable result (2026/07/31 04:51:10 Warning: PATs stored in env variables GITHUB_AUTH_TOKEN and GITHUB_TOKEN differ. Scorecard will use the former.); skipping Scorecard checks"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-31T04:51:43.342565Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/w/wrmsr/om.svg",
  "full_name": "wrmsr/om",
  "license_state": "standard",
  "license_spdx": "BSD-3-Clause"
}

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.