Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 1.13.0 · 2026-07-27 08:56 UTC

bespokelabsai / curator

Synthetic data curation for post-training and structured data extraction

PythonApache-2.0★ 1704 estrellas⑂ 143 forksdesde oct 2024Ver en GitHub ↗

bespokelabsai/curator tiene un índice de salud de 68 sobre 100, lo que lo sitúa en la banda Moderado. Su puntuación más alta es Engineering Quality (95/100) y la más baja, Security (10/100). Se actualizó por última vez hace 4 días. 3 personas concentran la mayor parte del trabajo reciente.

68
global / 100
Moderado

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

68
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

Bespoke LabsOrganización
128 seguidores17 repositorios públicosdesde abr 2024

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

Ecosistemas de paquetes

RegistroPaqueteVersiónDescargas / mesVersionesÚltima publicaciónEtiquetas
PyPIbespokelabs-curator0.1.2925.08057hace 13 díasaicuratorbespoke

Métricas por categoría

Vitalidad

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

72Bueno · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 4 días
6.2/36Cadencia de commits — 9/52 semanas con commits
12.2/18Volumen de commits — 22 commits en el último año
0/10OpenSSF Scorecard: Maintained — sin datos
Datos de entrada utilizados
commits_last_year22
human_commit_share1
days_since_last_push4
active_weeks_last_year9
Cómo se puntúa
27/27Publica versiones — 26 versiones publicadas
27/36Recencia de las versiones — última versión hace 133 días
27/27Cadencia de publicación — una versión cada ~42,4 días
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count26
latest_release_tagv0.1.27
releases_from_tagsno
days_since_latest_release133
mean_days_between_releases42,4

Comunidad y Adopción

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

73Bueno · 18% del índice global
Cómo se puntúa
52.4/60Estrellas — 1704 estrellas
17.9/25Forks — 143 forks
5.6/15Observadores — 11 observadores
Datos de entrada utilizados
forks143
stars1704
watchers11
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
22.5/22.5README
22.5/22.5Licencia — licencia reconocida (Apache-2.0)
18/18Guía CONTRIBUTING
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_contributing
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno
Cómo se puntúa
58.7/80Descargas mensuales — 25.080 descargas/mes en pypi
0/20Dependientes en el registro — no lo informa este ecosistema
Datos de entrada utilizados
packagesbespokelabs-curator
dependents
ecosystemspypi
total_downloads
monthly_downloads25.080
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?

78Bueno · 24% del índice global
Cómo se puntúa
36/54Factor bus — la mitad de los commits recae en 3 contribuyente(s)
17.2/22.5Distribución de commits — el principal contribuyente firma el 24% de los commits
13.5/13.5Amplitud de contribuyentes — 22 contribuyentes
0/10OpenSSF Scorecard: Contributors — sin datos
Datos de entrada utilizados
bus_factor3
contributors_sampled22
top_contributor_share0,235
Cómo se puntúa
36.9/46.8Resolución de issues — 79% de issues cerradas
33.3/38.3Aceptación de PR — 387/444 PR decididos fusionados
0/15OpenSSF Scorecard: Code-Review — sin datos
Datos de entrada utilizados
merged_prs387
open_issues57
closed_issues213
issue_closed_ratio0,789
closed_unmerged_prs57
Cómo se puntúa
30/30Respaldo de la propiedad — propiedad de una organización
0/20Dominio verificado
15.2/25Alcance del propietario — 128 seguidores de bespokelabsai
13.7/25Trayectoria — 17 repos públicos, cuenta de ~2 años
Datos de entrada utilizados
followers128
owner_typeOrganization
is_verified
owner_loginbespokelabsai
public_repos17
account_age_days825
Cómo se puntúa
25/25Publicado y resoluble — 1 paquete(s) en pypi
35/35Recencia de publicación — última publicación hace 13 días
20/20Historial de versiones — 57 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packagesbespokelabs-curator
ecosystemspypi
any_deprecatedno
min_days_since_publish13

Calidad de Ingeniería

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

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

Documentación

100Excelente
Cómo se puntúa
30/30README
25/25Directorio de documentación
15/15Sitio de documentación / página del proyecto — https://docs.bespokelabs.ai/bespoke-curator
10/10Descripción del repositorio
10/10Topics — 11 topics
10/10Wiki
Datos de entrada utilizados
topicssynthetic-data, agents, llm, prompt, python, synthetic-dataset-generation, deep-learning, fine-tuning, instruction-tuning, machine-learning, natural-language-processing
has_wiki
homepagehttps://docs.bespokelabs.ai/bespoke-curator
has_readme
has_docs_dir
has_description

Seguridad

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

10Crí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
lockfilespoetry.lock
manifestspyproject.toml
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
7.6/35Dependencias directas libres de avisos conocidos — 1 afectados: litellm 1.83.7 (critical 9.8)
6.6/25Dependencias indirectas libres de avisos conocidos — 4 afectados: aiohttp 3.13.5 (high 7.5), click 8.1.8 (high 7.2), google-cloud-aiplatform 1.71.1 (high), +1 más
29.9/40Sin avisos pendientes — 2 paquete(s) con avisos sin atender más allá de 90 días; el más antiguo publicado hace 156 días
Datos de entrada utilizados
sourceosv
advisories39
affected_packages5
assessed_packages114
unassessed_packages0
affected_by_severitycritical 1, high 3, moderate 1
direct_affected_packages1
Se cotejó el cierre de dependencias en tiempo de ejecución de pypi:bespokelabs-curator@0.1.29 —lo que arrastra la instalación del paquete publicado—: 114 paquetes. No se analiza la alcanzabilidad.

Preparación para IA

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

58Moderado · 0% del índice global
Cómo se puntúa
0/45Instrucciones para agentes — sin CLAUDE.md / AGENTS.md / reglas de editor
0/15Documentación legible por máquinas (llms.txt)
40/40Historial de commits legible — 99 de 100 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share0,99
agent_instruction_files
agent_instruction_max_bytes
Cómo se puntúa
18/18Arranque con un solo comando — Makefile
22/22Pruebas automatizadas
11/11Configuración de lint / formato
0/11Verificación estática de tipos
10/10Entorno reproducible — lockfile
10/10Práctica demostrada con agentes — 12 de los últimos 100 commits con autoría o crédito de agente
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
lockfilespoetry.lock
has_dockerfileno
typed_languageno
bootstrap_filesMakefile
has_devcontainerno
has_linter_config
typecheck_configs
agent_commit_share0,12
toolchain_manifests
dependency_bot_commit_share0
Cómo se puntúa
0/45Código verificable por tipos — Python sin configuración de verificación de tipos
55/55Tamaños de archivo manejables — 0/175 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languagePython
largest_source_bytes35.987
source_files_sampled175
oversized_source_files0
Cómo se puntúa
0/40Esquema de API (OpenAPI/GraphQL/proto)
0/20Servidor MCP
40/40Ejemplos ejecutables — examples
Datos de entrada utilizados
example_dirsexamples
has_mcp_signalno
api_schema_files

Datos clave

1704estrellas de GitHub
22contribuidores
22commits en los últimos 12 meses
4días desde el último push
26versiones publicadas
3factor bus
57issues abiertas
PyPIecosistemas de paquetes

Advertencias de recopilación de datos

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • OpenSSF Scorecard did not return a usable result (exit code -9); skipping Scorecard checks

Más detalle

Historial de estrellas y forks 0 ★ / 143 ⇿
0Estrellas
143Forks
26Versiones

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

0255075100125150141132024-112025-092026-07
Mayor 0Menor 0Parche 20

Cada punto abarca 2 días.

Dependencias directas 19
RegistroPaqueteRestricción de versiónManifiesto
PyPIpydantic>=2.9.2pyproject.toml
PyPIdatasets^3.0.2pyproject.toml
PyPIinstructor^1.6.3pyproject.toml
PyPIpandas2.2.2pyproject.toml
PyPIxxhash^3.5.0pyproject.toml
PyPItqdm^4.67.0pyproject.toml
PyPImatplotlib^3.9.2pyproject.toml
PyPInest-asyncio^1.6.0pyproject.toml
PyPIrich^13.7.0pyproject.toml
PyPIlitellm1.83.7pyproject.toml
PyPItiktoken>=0.7.0pyproject.toml
PyPIaiofiles>=22.0,<26.0pyproject.toml
PyPIanthropic^0.84.0pyproject.toml
PyPIvertexai1.71.1pyproject.toml
PyPIvllm^0.6.3pyproject.toml
PyPIbespokelabs-sandbox0.1.1pyproject.toml
PyPItinker^0.8.0pyproject.toml
PyPIposthog^3.11.0pyproject.toml
PyPImistralai^1.5.1pyproject.toml
Todas las dependencias 248

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

RegistroPaqueteVersiónRelación
PyPIaiofiles25.1.0directa
PyPIanthropic0.84.0directa
PyPIbespokelabs-sandbox0.1.1directa
PyPIdatasetsdirecta
PyPIdatasets3.2.0directa
PyPIdatasets3.6.0directa
PyPIinstructor1.14.5directa
PyPIlitellm1.83.7directa
PyPImatplotlib3.10.8directa
PyPImistralai1.12.4directa
PyPInest-asyncio1.6.0directa
PyPIpandas2.2.2directa
PyPIposthog3.25.0directa
PyPIpydantic2.12.5directa
PyPIrich13.9.4directa
PyPItiktoken0.12.0directa
PyPItinker0.8.1directa
PyPItqdm4.67.3directa
PyPIvertexai1.71.1directa
PyPIvllmdirecta
PyPIvllm0.6.6.post1directa
PyPIxxhash3.6.0directa
PyPIaccelerateindirecta
PyPIaiohappyeyeballs2.6.1indirecta
PyPIaiohttp3.13.5indirecta
PyPIaiohttp-cors0.8.1indirecta
PyPIaiosignal1.4.0indirecta
PyPIairportsdata20260304indirecta
PyPIannotated-doc0.0.4indirecta
PyPIannotated-types0.7.0indirecta
PyPIanyio4.12.1indirecta
PyPIaryn-sdkindirecta
PyPIastor0.8.1indirecta
PyPIasync-timeout5.0.1indirecta
PyPIattrs25.4.0indirecta
PyPIbackoff2.2.1indirecta
PyPIbackports-tarfile1.2.0indirecta
PyPIbespokelabs-curatorindirecta
PyPIbespokelabs-curator0.1.16indirecta
PyPIblake31.0.8indirecta
PyPIcertifi2026.2.25indirecta
PyPIcffi2.0.0indirecta
PyPIcfgv3.5.0indirecta
PyPIcharset-normalizer3.4.5indirecta
PyPIclick8.1.8indirecta
PyPIcloudpickle3.1.2indirecta
PyPIcolorama0.4.6indirecta
PyPIcolorful0.5.8indirecta
PyPIcompressed-tensors0.8.1indirecta
PyPIcontourpy1.3.2indirecta
PyPIcoverage7.13.4indirecta
PyPIcryptography46.0.5indirecta
PyPIcycler0.12.1indirecta
PyPIdeepspeedindirecta
PyPIdepyf0.18.0indirecta
PyPIdill0.3.8indirecta
PyPIdiskcache5.6.3indirecta
PyPIdistlib0.4.0indirecta
PyPIdistro1.9.0indirecta
PyPIdocstring-parser0.17.0indirecta
PyPIdocutils0.22.4indirecta
PyPIeinops0.8.2indirecta
PyPIeval-type-backport0.3.1indirecta
PyPIexceptiongroup1.3.1indirecta
PyPIfaiss-cpuindirecta
PyPIfastapi0.135.1indirecta
PyPIfastuuid0.14.0indirecta
PyPIfilelock3.25.2indirecta
PyPIfonttools4.62.1indirecta
PyPIfrozenlist1.8.0indirecta
PyPIfsspec2025.3.0indirecta
PyPIgguf0.10.0indirecta
PyPIgoogle-api-core2.25.2indirecta
PyPIgoogle-auth2.49.1indirecta
PyPIgoogle-cloud-aiplatform1.71.1indirecta
PyPIgoogle-cloud-bigquery3.40.1indirecta
PyPIgoogle-cloud-core2.5.0indirecta
PyPIgoogle-cloud-resource-manager1.16.0indirecta
PyPIgoogle-cloud-storage2.19.0indirecta
PyPIgoogle-crc32c1.8.0indirecta
PyPIgoogle-resumable-media2.8.0indirecta
PyPIgoogleapis-common-protos1.73.0indirecta
PyPIgrpc-google-iam-v10.14.3indirecta
PyPIgrpcio1.78.0indirecta
PyPIgrpcio-status1.71.2indirecta
PyPIh110.16.0indirecta
PyPIh24.3.0indirecta
PyPIhf-xet1.4.2indirecta
PyPIhpack4.1.0indirecta
PyPIhttpcore1.0.9indirecta
PyPIhttptools0.7.1indirecta
PyPIhttpx0.28.1indirecta
PyPIhuggingface-hub1.7.1indirecta
PyPIhyperframe6.1.0indirecta
PyPIidentify2.6.17indirecta
PyPIidna3.11indirecta
PyPIimportlib-metadata8.5.0indirecta
PyPIiniconfig2.3.0indirecta
PyPIinteregular0.3.3indirecta
PyPIinvoke2.2.1indirecta
PyPIisort5.13.2indirecta
PyPIjaraco-classes3.4.0indirecta
PyPIjaraco-context6.1.1indirecta
PyPIjaraco-functools4.4.0indirecta
PyPIjeepney0.9.0indirecta
PyPIjinja23.1.6indirecta
PyPIjiter0.11.1indirecta
PyPIjsonschema4.23.0indirecta
PyPIjsonschema-specifications2025.9.1indirecta
PyPIkeyring25.7.0indirecta
PyPIkiwisolver1.5.0indirecta
PyPIlangchainindirecta
PyPIlangchain-experimentalindirecta
PyPIlangchain-openaiindirecta
PyPIlark1.2.2indirecta
PyPIlatex2sympy21.9.1indirecta
PyPIlm-format-enforcer0.10.12indirecta
PyPImarkdown-it-py4.0.0indirecta
PyPImarkupsafe3.0.3indirecta
PyPImdurl0.1.2indirecta
PyPImistral-common1.5.6indirecta
PyPImonotonic1.6indirecta
PyPImore-itertools10.8.0indirecta
PyPImpmath1.3.0indirecta
PyPImsgpack1.1.2indirecta
PyPImsgspec0.20.0indirecta
PyPImultidict6.7.1indirecta
PyPImultiprocess0.70.16indirecta
PyPInetworkx3.4.2indirecta
PyPInh30.3.3indirecta
PyPInodeenv1.10.0indirecta
PyPInumpyindirecta
PyPInumpy1.26.4indirecta
PyPInvidia-cublas-cu1212.4.5.8indirecta
PyPInvidia-cuda-cupti-cu1212.4.127indirecta
PyPInvidia-cuda-nvrtc-cu1212.4.127indirecta
PyPInvidia-cuda-runtime-cu1212.4.127indirecta
PyPInvidia-cudnn-cu129.1.0.70indirecta
PyPInvidia-cufft-cu1211.2.1.3indirecta
PyPInvidia-curand-cu1210.3.5.147indirecta
PyPInvidia-cusolver-cu1211.6.1.9indirecta
PyPInvidia-cusparse-cu1212.3.1.170indirecta
PyPInvidia-ml-py13.590.48indirecta
PyPInvidia-nccl-cu122.21.5indirecta
PyPInvidia-nvjitlink-cu1212.4.127indirecta
PyPInvidia-nvtx-cu1212.4.127indirecta
PyPIopenai2.30.0indirecta
PyPIopencensus0.11.4indirecta
PyPIopencensus-context0.1.3indirecta
PyPIopencv-python-headless4.11.0.86indirecta
PyPIopentelemetry-api1.40.0indirecta
PyPIopentelemetry-exporter-otlp-proto-common1.40.0indirecta
PyPIopentelemetry-exporter-otlp-proto-http1.40.0indirecta
PyPIopentelemetry-exporter-prometheus0.61b0indirecta
PyPIopentelemetry-proto1.40.0indirecta
PyPIopentelemetry-sdk1.40.0indirecta
PyPIopentelemetry-semantic-conventions0.61b0indirecta
PyPIoutlines0.1.11indirecta
PyPIoutlines-core0.1.26indirecta
PyPIpackaging26.0indirecta
PyPIpartial-json-parser0.2.1.1.post7indirecta
PyPIpdfplumberindirecta
PyPIpillow12.1.1indirecta
PyPIpkginfo1.10.0indirecta
PyPIplatformdirs4.9.4indirecta
PyPIpluggy1.6.0indirecta
PyPIpre-commit4.5.1indirecta
PyPIprometheus-client0.24.1indirecta
PyPIprometheus-fastapi-instrumentator7.1.0indirecta
PyPIpropcache0.4.1indirecta
PyPIproto-plus1.27.1indirecta
PyPIprotobuf5.29.6indirecta
PyPIpsutil6.1.1indirecta
PyPIpy-cpuinfo9.0.0indirecta
PyPIpy-spy0.4.1indirecta
PyPIpyarrow23.0.1indirecta
PyPIpyasn10.6.2indirecta
PyPIpyasn1-modules0.4.2indirecta
PyPIpycountry26.2.16indirecta
PyPIpycparser3.0indirecta
PyPIpydantic-core2.41.5indirecta
PyPIpygments2.19.2indirecta
PyPIpyparsing3.3.2indirecta
PyPIpytest8.4.2indirecta
PyPIpytest-asyncio0.24.0indirecta
PyPIpytest-cov6.3.0indirecta
PyPIpytest-dependency0.6.1indirecta
PyPIpytest-timeout2.4.0indirecta
PyPIpython-dateutil2.9.0.post0indirecta
PyPIpython-discovery1.1.3indirecta
PyPIpython-dotenv1.0.1indirecta
PyPIpytz2026.1.post1indirecta
PyPIpywin32-ctypes0.2.3indirecta
PyPIpyyaml6.0.3indirecta
PyPIpyzmq27.1.0indirecta
PyPIrayindirecta
PyPIray2.54.0indirecta
PyPIreadme-renderer44.0indirecta
PyPIreferencing0.37.0indirecta
PyPIregex2026.2.28indirecta
PyPIrequestsindirecta
PyPIrequests2.32.5indirecta
PyPIrequests-toolbelt1.0.0indirecta
PyPIrfc39862.0.0indirecta
PyPIrpds-py0.30.0indirecta
PyPIruff0.8.6indirecta
PyPIsafetensors0.7.0indirecta
PyPIscikit-learnindirecta
PyPIscipy1.15.1indirecta
PyPIsecretstorage3.5.0indirecta
PyPIsentence-transformersindirecta
PyPIsentencepiece0.2.1indirecta
PyPIsetuptools82.0.1indirecta
PyPIshapely2.1.2indirecta
PyPIshellingham1.5.4indirecta
PyPIsix1.17.0indirecta
PyPIsmart-open7.5.1indirecta
PyPIsniffio1.3.1indirecta
PyPIstarlette0.52.1indirecta
PyPIsympy1.13.1indirecta
PyPItenacity9.1.4indirecta
PyPItimeout-decorator0.5.0indirecta
PyPItokenizers0.22.2indirecta
PyPItomli2.4.0indirecta
PyPItorchindirecta
PyPItorch2.5.1indirecta
PyPItorchvision0.20.1indirecta
PyPItransformersindirecta
PyPItransformers5.3.0indirecta
PyPItriton3.1.0indirecta
PyPItwine5.1.1indirecta
PyPItyper0.26.7indirecta
PyPItyping-extensions4.15.0indirecta
PyPItyping-inspection0.4.2indirecta
PyPItzdata2025.3indirecta
PyPIurllib31.26.20indirecta
PyPIuvicorn0.41.0indirecta
PyPIuvloop0.22.1indirecta
PyPIvcrpy7.0.0indirecta
PyPIvirtualenv21.2.0indirecta
PyPIwatchfiles1.1.1indirecta
PyPIwebsockets16.0indirecta
PyPIword2number1.1indirecta
PyPIwrapt2.1.2indirecta
PyPIxformers0.0.28.post3indirecta
PyPIxgrammar0.1.32indirecta
PyPIyarl1.23.0indirecta
PyPIzipp3.23.0indirecta
Avisos de dependencias 5

Instalar pypi:bespokelabs-curator@0.1.29 arrastra 114 paquetes, directos y transitivos: 5 tienen avisos conocidos, de los cuales 1 son dependencias directas.

PaqueteVersiónRelaciónGravedadAvisosCorregido en
litellm1.83.7directacrítica121.84.0
aiohttp3.13.5indirectaalta223.14.1
click8.1.8indirectaalta18.3.3
google-cloud-aiplatform1.71.1indirectaalta21.133.0
python-dotenv1.0.1indirectamoderada21.2.2

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": [
        "synthetic-data",
        "agents",
        "llm",
        "prompt",
        "python",
        "synthetic-dataset-generation",
        "deep-learning",
        "fine-tuning",
        "instruction-tuning",
        "machine-learning",
        "natural-language-processing"
      ],
      "is_fork": false,
      "size_kb": 67439,
      "has_wiki": true,
      "homepage": "https://docs.bespokelabs.ai/bespoke-curator",
      "languages": {
        "Shell": 117,
        "Python": 841964,
        "Makefile": 914,
        "JavaScript": 1315
      },
      "pushed_at": "2026-07-22T14:53:26Z",
      "created_at": "2024-10-28T01:11:41Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-24T18:48:46Z",
      "description": "Synthetic data curation for post-training and structured data extraction",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "main",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": "Python",
      "significant_languages": [
        "Python"
      ]
    },
    "owner": {
      "blog": "bespokelabs.ai",
      "name": "Bespoke Labs",
      "type": "Organization",
      "login": "bespokelabsai",
      "company": null,
      "location": "United States of America",
      "followers": 128,
      "avatar_url": "https://avatars.githubusercontent.com/u/167806754?v=4",
      "created_at": "2024-04-22T18:08:06Z",
      "is_verified": null,
      "public_repos": 17,
      "account_age_days": 825
    },
    "license": {
      "state": "standard",
      "spdx_id": "Apache-2.0",
      "raw_spdx": "Apache-2.0",
      "file_present": true,
      "scorecard_found": null,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.1.27",
          "kind": "patch",
          "published_at": "2026-03-15T17:57:15Z"
        },
        {
          "tag": "v0.1.26",
          "kind": "patch",
          "published_at": "2025-07-29T18:39:32Z"
        },
        {
          "tag": "v0.1.25",
          "kind": "patch",
          "published_at": "2025-05-30T17:59:06Z"
        },
        {
          "tag": "v0.1.24",
          "kind": "patch",
          "published_at": "2025-05-06T16:45:57Z"
        },
        {
          "tag": "v0.1.23.post1",
          "kind": "other",
          "published_at": "2025-04-11T23:11:14Z"
        },
        {
          "tag": "v0.1.23",
          "kind": "patch",
          "published_at": "2025-04-11T16:28:58Z"
        },
        {
          "tag": "v0.1.22",
          "kind": "patch",
          "published_at": "2025-03-31T06:56:51Z"
        },
        {
          "tag": "v0.1.21",
          "kind": "patch",
          "published_at": "2025-03-19T23:21:12Z"
        },
        {
          "tag": "v0.1.20",
          "kind": "patch",
          "published_at": "2025-02-28T19:30:56Z"
        },
        {
          "tag": "v0.1.19.post1",
          "kind": "other",
          "published_at": "2025-02-26T20:26:21Z"
        },
        {
          "tag": "0.1.19",
          "kind": "patch",
          "published_at": "2025-02-17T20:23:39Z"
        },
        {
          "tag": "v0.1.18.post4",
          "kind": "other",
          "published_at": "2025-02-07T06:10:50Z"
        },
        {
          "tag": "v0.1.18",
          "kind": "patch",
          "published_at": "2025-02-06T00:03:36Z"
        },
        {
          "tag": "v0.1.17.post1",
          "kind": "other",
          "published_at": "2025-01-30T17:02:37Z"
        },
        {
          "tag": "v0.1.17",
          "kind": "patch",
          "published_at": "2025-01-28T22:54:22Z"
        },
        {
          "tag": "v0.1.16",
          "kind": "patch",
          "published_at": "2025-01-21T19:33:23Z"
        },
        {
          "tag": "v0.1.15.post1",
          "kind": "other",
          "published_at": "2025-01-15T16:06:49Z"
        },
        {
          "tag": "v0.1.15",
          "kind": "patch",
          "published_at": "2025-01-14T22:59:51Z"
        },
        {
          "tag": "v0.1.14",
          "kind": "patch",
          "published_at": "2025-01-07T02:32:10Z"
        },
        {
          "tag": "0.1.13",
          "kind": "patch",
          "published_at": "2024-12-23T07:42:07Z"
        },
        {
          "tag": "v0.1.12",
          "kind": "patch",
          "published_at": "2024-12-17T06:51:50Z"
        },
        {
          "tag": "v0.1.11",
          "kind": "patch",
          "published_at": "2024-12-06T04:47:35Z"
        },
        {
          "tag": "v0.1.10",
          "kind": "patch",
          "published_at": "2024-11-26T23:39:01Z"
        },
        {
          "tag": "v0.1.9.post1",
          "kind": "other",
          "published_at": "2024-11-19T19:53:23Z"
        },
        {
          "tag": "v0.1.9",
          "kind": "patch",
          "published_at": "2024-11-16T00:24:17Z"
        },
        {
          "tag": "v0.1.8",
          "kind": "patch",
          "published_at": "2024-11-15T01:08:59Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "461b4170b96690873a152e829185a920a941b960",
          "body": "Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: bump 0.1.29 (#728)",
          "author_name": "Mahesh Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2026-07-13T12:16:31Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "08e42e726f193772f58230db5abd326b7c1b5b45",
          "body": "Adds a native `backend=\"azure\"` batch request processor, since Azure OpenAI\nwas previously only reachable via the litellm backend, which doesn't support\nbatch mode. Batch was already supported natively for OpenAI, Anthropic,\nGemini, and Mistral, but not Azure.\n\nAzure's OpenAI-compatible \"v1\" API sur\n[…]\ncrosoft's current official\ndocumentation, and the integration test is left @pytest.mark.skip()-decorated\npending a run against a real resource.\n\nCo-authored-by: Claude Sonnet 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: add native Azure OpenAI batch backend (#538) (#727)",
          "author_name": "EpicSRN021",
          "author_login": "EpicSRN021",
          "committed_at": "2026-07-13T02:00:10Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b346fdf5810987be4426a6785ac4a6cb44b3bf35",
          "body": "… (#725)\n\naiohttp.ClientSession ignores HTTP_PROXY/HTTPS_PROXY/ALL_PROXY unless\ntrust_env=True is set explicitly, unlike requests/httpx. Since the shared\nonline request path posts directly via aiohttp rather than the anthropic\nSDK client, proxy env vars were silently ignored, causing timeouts or\ndir\n[…]\nonments.\n\nSets trust_env=True on the shared aiohttp session used by all online\nrequest processors, and adds a regression test asserting the session\ncreated by aiohttp_connector trusts the environment.",
          "is_bot": false,
          "headline": "fix: honor system proxy env vars for Anthropic online requests (#699)…",
          "author_name": "EpicSRN021",
          "author_login": "EpicSRN021",
          "committed_at": "2026-07-13T01:59:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6d5e247cb53f1dff8e18cb12afd854e18fe8277d",
          "body": "litellm 1.83.7 exact-pins its transitive deps, so this also moves openai 2.28.0->2.30.0 and aiohttp 3.13.3->3.13.5, and pins pydantic 2.12.5, click 8.1.8, jsonschema 4.23.0, importlib-metadata 8.5.0, and python-dotenv 1.0.1 (pydantic-core and typer follow to stay compatible).",
          "is_bot": false,
          "headline": "chore: upgrade litellm to 1.83.7 (#722)",
          "author_name": "Mahesh Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2026-06-21T06:14:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4e69044de34e8800622aaf496befa5725d8d0992",
          "body": null,
          "is_bot": false,
          "headline": "Add Mistral batch finish reasons (#717)",
          "author_name": "Blackdrome",
          "author_login": "09Catho",
          "committed_at": "2026-06-20T22:45:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e0f6a800b6747ead70226151ef9bce199bd8c17",
          "body": "Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: bump 0.1.28 (#721)",
          "author_name": "Mahesh Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2026-06-14T02:38:22Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "be028ec3eef41e4296dc37c4a85b52ef48a8cacd",
          "body": "* Fix code execution on the local sandbox backend\n\nSince #716, CodeExecutor with the default \"local\" backend always failed:\nthe command `cd /workspace && ...` escapes the sandbox path rebasing.\nHost-style sandbox backends (local, ray) map absolute paths under a temp\n$SANDBOX_ROOT via a shell prelude\n[…]\nocker/e2b/modal/ray/... backends, mostly unexercised here) entered the\ncoverage denominator and dropped the total from 79.5% to ~72%, tripping\nthe 80% gate. Measure only curator's own package instead.",
          "is_bot": false,
          "headline": "Fix code execution on the local sandbox backend (#720)",
          "author_name": "Mahesh Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2026-06-11T06:09:22Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f060e1a8e3a2f7fd5f007145ec1fa1ed31377d00",
          "body": "* Add FireworksTrainer for managed fine-tuning via Fireworks AI\n\nAdds a Fireworks AI integration to the finetune module behind the same\nBaseTrainer interface as TinkerTrainer:\n\n- FireworksTrainerConfig: validated SFT hyperparameters (LoRA rank,\n  epochs, learning rate) plus deployment and polling se\n[…]\ne Fable 5 <noreply@anthropic.com>\n\n* Announce Fireworks fine-tuning integration in README\n\nAdd a What's New entry and a Finetuning/Distillation examples table row\nfor the FireworksTrainer integration.",
          "is_bot": false,
          "headline": "Add FireworksTrainer for managed fine-tuning via Fireworks AI (#719)",
          "author_name": "Mahesh Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2026-06-11T05:56:17Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8f26600e0a6b41f5fc1098ac2d4f22fe0ec95b97",
          "body": "* Replace code execution backends with bespokelabs-sandbox\n\nRemove the four built-in execution backends (multiprocessing, docker, ray, e2b)\nand replace them with a single unified backend powered by bespokelabs-sandbox.\nThis delegates sandbox lifecycle, isolation, and multi-provider support to the\nsa\n[…]\n unit tests with fake sandbox for all error paths\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Use bespokelabs-sandbox to run code in sandboxes (#716)",
          "author_name": "Mahesh Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2026-03-28T05:18:41Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "cb11a56c87fb1939baf60f35e9cb93a85227d1e7",
          "body": null,
          "is_bot": false,
          "headline": "Clean up dead code (#715)",
          "author_name": "Mahesh Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2026-03-18T03:54:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fa05930bdf00f506e9880d5576462c0e63b8275f",
          "body": null,
          "is_bot": false,
          "headline": "Fix simple_poem and use Sonnet 4.6 for multimodal testing (#714)",
          "author_name": "Mahesh Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2026-03-17T07:17:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5af79b856f4c01de5117154f2d27a7750478223e",
          "body": "Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: Break long line to satisfy ruff E501 lint rule",
          "author_name": "Maheswaran Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2026-03-16T17:40:25Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "25a7eb60cca4fa2c9c3a12edeab1e00fdb1ee32c",
          "body": "external_model_cost returns None when the provider isn't in the cost map,\ncausing a TypeError when multiplying None by 1_000_000.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: Handle None cost values in batch request processor set_model_cost",
          "author_name": "Maheswaran Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2026-03-16T15:43:43Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "99191e679cac9d9187b07fb746e7536570be92da",
          "body": "* Fix poem finetuning example and Tinker compatibility\n\n* Fix Tinker kwargs handling and poem example lint",
          "is_bot": false,
          "headline": "Fix poem finetuning example and Tinker compatibility (#712)",
          "author_name": "Mahesh Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2026-03-16T05:12:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "734cf7b9299236c367163a43365c1b77d6ec885c",
          "body": "Upgrade litellm (1.61.3 → 1.82.2), anthropic (0.47.2 → 0.84.0),\ninstructor (1.7.2 → 1.14.5), aiofiles (23.2.1 → 25.1.0), and other\ndependencies to their latest compatible versions. Add Tinker fine-tuning\nintegration to the What's New section in README.\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: upgrade dependencies and add Tinker to What's New (#711)",
          "author_name": "Mahesh Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2026-03-15T17:54:18Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c819655a89c0f28a3917ffe1d38dd16602ccf75a",
          "body": "Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: bump 0.1.27",
          "author_name": "Maheswaran Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2026-03-14T23:02:36Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "fd50653eb213fd1b7783fe68313270c1245733b1",
          "body": "…ith curator (#710)\n\n* Code clean up\n\n* feat: add Tinker SDK integration for LoRA fine-tuning with checkpointing\n\nIntegrate the Tinker SDK to enable real LoRA fine-tuning via the Tinker\nAPI. When a TINKER_API_KEY is provided and the tinker package is installed,\ntraining runs against the Tinker servi\n[…]\nready logged by per-step logging, preventing duplicate entries\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Add support for Tinker for finetuning after data is generated w…",
          "author_name": "Mahesh Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2026-03-14T22:56:54Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2b1904edd4f5381e3e8f97d06b177797e621c74b",
          "body": null,
          "is_bot": false,
          "headline": "Code clean up (#708)",
          "author_name": "Mahesh Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2026-01-24T03:36:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "43bd04115756c889f4222a655075d6bdcc700fe6",
          "body": "* feat: add support for Claude 4.x and 3.7 models\n\nAdd multimodal and JSON format support for new Anthropic models:\n- Claude 4.5: sonnet, haiku, opus (claude-{model}-4-5-{date})\n- Claude 4.0/4.1: sonnet, opus (claude-{model}-4-{date})\n- Claude 3.7: sonnet (claude-3-7-sonnet-{date})\n\n🤖 Generated with\n[…]\nx variants)\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: add support for Claude 4.x and 3.7 models (#704)",
          "author_name": "Mahesh Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2026-01-24T03:35:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "88cd9777396befea3cd6c2d751966b5c6daea04a",
          "body": null,
          "is_bot": false,
          "headline": "Update README.md (#707)",
          "author_name": "Mahesh Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2026-01-22T00:29:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "70dbf3ea9dce241ebf43bc81158c5094d5076231",
          "body": null,
          "is_bot": false,
          "headline": "Fixed LiteLLM multi-hosted_vllm request address mixture. (#701)",
          "author_name": "Mehmet Yigit Turali",
          "author_login": "YigitTurali",
          "committed_at": "2026-01-05T07:25:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4b41961db08c0c0beebeb4fa7b15cc6d032cf99d",
          "body": null,
          "is_bot": false,
          "headline": "fix broken tests (#706)",
          "author_name": "Mahesh Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2025-12-30T18:46:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ee17108290535324abbdb64b91aab0a13fdf801",
          "body": null,
          "is_bot": false,
          "headline": "ref: add version tag in lib (#696)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-07-10T13:56:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8389f4c6ee2150f845c27211505356a5ad474a2e",
          "body": "* feat: auto batch mode\n\n* update test\n\n* fix test\n\n* ref: update auto batch size algorithm\n\n* ref: update algorihtm",
          "is_bot": false,
          "headline": "feat: auto batch mode (#691)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-06-25T18:50:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8a232eea348882edb16beecd4fe79e4262795165",
          "body": "Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>",
          "is_bot": false,
          "headline": "fix: resolve Pydantic issues (#689)",
          "author_name": "Emmanuel Ferdman",
          "author_login": "emmanuel-ferdman",
          "committed_at": "2025-06-13T11:15:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d26eb509d8817998ca8b327382040daf6361f16d",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump 0.1.26 (#686)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-06-06T17:36:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bf559d8d368f35aaf68da4a485b485211c0623d2",
          "body": "* ref: refactor agent\n\n* fix: agent resume with stopping criterion\n\n* update\n\n* update",
          "is_bot": false,
          "headline": "Ref agent multiturn minor (#685)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-06-06T03:42:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "411f5054101b5a99685a69f3ce5cf8842940ee6b",
          "body": "* ref: check structured outputs support with litellm\n\n* update\n\n* update",
          "is_bot": false,
          "headline": "ref: check structured outputs support with litellm (#683)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-06-04T18:14:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "645de4015b175c49949d489dc56fd08009d93bd9",
          "body": "* fix torch error\n\n* modify test\n\n* ruff",
          "is_bot": false,
          "headline": "fix error when torch isn't installed (#663)",
          "author_name": "Shreyas Pimpalgaonkar",
          "author_login": "shreyaspimpalgaonkar",
          "committed_at": "2025-06-04T15:36:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "70f2e8960145a2b59053dac0da17af25762dcc8b",
          "body": null,
          "is_bot": false,
          "headline": "feat: add stopping criteron in agent (#684)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-06-04T06:13:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "92ab260097cf048e47c239a88cf5b08f4b605bff",
          "body": "Co-authored-by: TheDude <kartik4949@gmail.com>",
          "is_bot": false,
          "headline": "If the model is not known, let the cost be None. (#681)",
          "author_name": "Mahesh Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2025-06-03T22:45:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5cd48e77aa5f0f06c64e81d51c625ad079a6adbc",
          "body": "* feat: add support to download dataset from viewer\n\n* add parquest support in load daatset\n\n* update",
          "is_bot": false,
          "headline": "feat: add support to download dataset from viewer (#652)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-06-02T03:44:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4973e66378383669a9d9fdd1d4e2ef4fb24da67c",
          "body": null,
          "is_bot": false,
          "headline": "fix: viewer url bug in curator response (#682)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-06-01T16:48:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d517c881645ad9a9805fc9c19f89e2a1ed05b24a",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump 0.1.25 (#680)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-05-30T16:54:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8fe4f7b8bd18bede83ee37e7b69fdde3b1df45da",
          "body": "* Add o3 to list of models supporting structured outputs\n\n* Add o3 to list of models supporting structured output.",
          "is_bot": false,
          "headline": "Add o3 to list of models supporting structured outputs (#679)",
          "author_name": "Mahesh Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2025-05-30T16:36:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "05e9d7666b87cb762022e3447e27035f3d3c9ab9",
          "body": null,
          "is_bot": false,
          "headline": "Delete HOSTED_CURATOR_VIEWER environment variable. (#674)",
          "author_name": "Mahesh Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2025-05-24T02:23:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5904fe71287d393265ea579fdf00a1238e59153",
          "body": "* feat: add curator viewer in agent\n\n* endh",
          "is_bot": false,
          "headline": "Feat/add/curator/link/agent (#672)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-05-23T17:34:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e6f04b03b08a7321fbd69e96ea02fff19c1bf9e6",
          "body": "* make agentic curation response format as openai\n\n* update example\n\n* update",
          "is_bot": false,
          "headline": "make agentic curation response format as openai (#673)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-05-23T06:16:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd21a1fc3b38103afdb8c3d0b9ee7524025eda79",
          "body": "* feat: add response object in agent\n\n* update test",
          "is_bot": false,
          "headline": "feat: add response object in agent (#671)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-05-23T03:23:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "86338af9d306fa8d5594ea541cb84d5ba8294694",
          "body": null,
          "is_bot": false,
          "headline": "updated examples (#670)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-05-23T00:57:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cd2cf6ad7546c1343d46edb663d163c31307cdab",
          "body": "I prefer to \"return\" as soon as possible.\nOtherwise, it's possible that one sets _request_processor at some place, but it gets modified erroneously elsewhere before returning at the very end.",
          "is_bot": false,
          "headline": "Clean up _factory.py (#668)",
          "author_name": "Mahesh Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2025-05-23T00:38:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "269d133a07790b5fecec5636b116ca708dc37eb2",
          "body": null,
          "is_bot": false,
          "headline": "update agentic multi turn example (#667)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-05-22T21:47:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d05fc9c6da1b688d4d4b59a9d5dc99149574a9d4",
          "body": "* feat: add agentic conversation curator\n\n* feat: add agentic conversation curator\n\n* feat: add conversation support in multiturn\n\n* feat: status tracker and cost\n\n* update\n\n* update\n\n* update\n\n* update example\n\n* ruff",
          "is_bot": false,
          "headline": "Feat/agentic/multiturn (#658)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-05-21T13:03:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0ae417e5cab5891bb39d8c0afeb1e13aa71a3bb1",
          "body": "* perf: make download batch lazy in gemini processor\n\n* ref: add support for cache dir in gemini batch gcs\n\n* perf: reduce memory footprint of batch in gemini\n\n* ref: add chunk streaming in batch mode\n\n* handle non async download returns",
          "is_bot": false,
          "headline": "perf: make download batch lazy in gemini processor (#654)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-05-20T00:59:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b54a9dc450d2ecd1a5edb06df8f5b499e3c38c3e",
          "body": "Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>",
          "is_bot": false,
          "headline": "fix: migrate to `logger.warning` (#666)",
          "author_name": "Emmanuel Ferdman",
          "author_login": "emmanuel-ferdman",
          "committed_at": "2025-05-13T05:34:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bde5473e51256c87cd6f0e252114c595620093e6",
          "body": "* feat: add example of prescription extraction\n\n* add readme\n\n* update example",
          "is_bot": false,
          "headline": "feat: add example of prescription extraction (#661)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-05-07T17:57:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c45485912faa1d63ffec137919525a806cd439ab",
          "body": "* init on submitted batch statistics account, not yet tested\n\n* checkpoint progress\n\n* update pbar for batch status tracker\n\n* fix test curator cli display",
          "is_bot": false,
          "headline": "Fix/curator-cli-batch-update-freq-increase (#632)",
          "author_name": "Charlie Cheng-Jie Ji",
          "author_login": "CharlieJCJ",
          "committed_at": "2025-05-06T22:13:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "00ce9759ad69a1442ccc0b90bbaaa871dd78d255",
          "body": "* Feat/openai/deepseek api\n\nfeat: make structured output supported in openai online for deepseek-reasoner model\n\n* deepseek samples to code-execution/math-animation\n\n* fix ruff format checked failed\n\n* fix math-animation/generate_script.py\nit should be the \"scripts_dataset\" to save and push_to_hub",
          "is_bot": false,
          "headline": "Feat/openai/deepseek api (#640)",
          "author_name": "feng lui",
          "author_login": "fenglui",
          "committed_at": "2025-05-06T22:11:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9dd2d25928837a59162870f1a251dccd94d7346c",
          "body": null,
          "is_bot": false,
          "headline": "docs: revert lint changes",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-05-06T18:58:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "31e46115458a44feb7dbc9d01092fc59ddad40a0",
          "body": null,
          "is_bot": false,
          "headline": "docs: fix typo",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-05-06T18:58:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "940c04b3d2f138b348b7287b814a0fbb81219071",
          "body": null,
          "is_bot": false,
          "headline": "docs: small tweaks",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-05-06T18:58:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e0da9c8291a51853a75371db1a547efda3c49cc4",
          "body": null,
          "is_bot": false,
          "headline": "docs: clean up wording",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-05-06T18:58:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fdecd96627e2b5b0745312394e2cab984b2d7b27",
          "body": null,
          "is_bot": false,
          "headline": "fix: small typo in doc",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-05-05T21:19:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "67c617cf14495c94935ee12014a8c18c6458ca54",
          "body": null,
          "is_bot": false,
          "headline": "docs: updated README with authentication",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-05-05T21:19:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a5b551ac0a4b253d1ee5bbb41d5408501b585ab2",
          "body": "* init\n\n* update curator response\n\n* update tests\n\n* feat: add warning in curator response",
          "is_bot": false,
          "headline": "feat: add response object in curator (#643)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-05-05T12:45:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d0aae819fcac6c7d184ab3462f6a0641c4dad410",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump 0.1.24 (#659)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-05-02T07:21:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "401f689f2b31b51cf572815933098d83783bf680",
          "body": "* ref: support anthropic backend for multimodal input\n\n* ref: remove openai multimodal check",
          "is_bot": false,
          "headline": "ref: support anthropic backend for multimodal input (#656)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-05-02T06:36:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1e30df6791da2b422d54e7059b1351aa5b648b63",
          "body": null,
          "is_bot": false,
          "headline": "ref: check job state before download in gemini (#646)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-04-22T13:52:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3cd80238f1d4539b24bb5db5fa3b8ce0339702ef",
          "body": null,
          "is_bot": false,
          "headline": "Update anthropic_online_request_processor.py (#649)",
          "author_name": "Ryan Marten",
          "author_login": "RyanMarten",
          "committed_at": "2025-04-22T08:31:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5537f1b30b293db4b6024de65b1ff417f1121264",
          "body": "* feature: set dtype flag\n\n* add type annotation for dtype\n\n* fix: initialize dtype attribute in BaseOfflineRequestProcessor to resolve AttributeError",
          "is_bot": false,
          "headline": "feature: set dtype flag (#645)",
          "author_name": "Aakash Thatte",
          "author_login": "sky-2002",
          "committed_at": "2025-04-22T06:00:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4d24b8fef799d78dcf9fe2ae325ae5be695e5cce",
          "body": "* add display fixes for batch\n\n* fix cost processor not using batch cost\n\n* fix batch=True cost calculation for all providers\n\n* moved cost processor to base class",
          "is_bot": false,
          "headline": "fix/final_statistics_display_fixes (#644)",
          "author_name": "Charlie Cheng-Jie Ji",
          "author_login": "CharlieJCJ",
          "committed_at": "2025-04-17T20:16:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "44b32861a94112b00d2147c03cc410cb17b23bef",
          "body": null,
          "is_bot": false,
          "headline": "feat: add gpt-4.1 structured output mapping",
          "author_name": "Mithil Poojary",
          "author_login": "Mithil467",
          "committed_at": "2025-04-17T13:26:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0157982d27094127a37417595d725d0937f6be74",
          "body": null,
          "is_bot": false,
          "headline": "feat: add gpt-4.1 structured output mapping",
          "author_name": "Mithil Poojary",
          "author_login": "Mithil467",
          "committed_at": "2025-04-17T13:26:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f125f23916ce52545b0390c2d271acf137e53df",
          "body": null,
          "is_bot": false,
          "headline": "cost streaming for batch (#638)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-04-16T11:00:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ff1c12392fb2dd9b3d0bacd423a5684eedd71b85",
          "body": null,
          "is_bot": false,
          "headline": "feat: fix batch mode structure outputs bug (#639)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-04-15T13:16:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d69e2a6849641d4aa844ad9a3714882c88c9418d",
          "body": null,
          "is_bot": false,
          "headline": "add gpt 4.1 structured output support from curator (#637)",
          "author_name": "Charlie Cheng-Jie Ji",
          "author_login": "CharlieJCJ",
          "committed_at": "2025-04-15T13:10:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e19ec4c7aaefdd17369fecbb8633e121ddb4490b",
          "body": null,
          "is_bot": false,
          "headline": "feat: add flag to disable metadata db (#583)",
          "author_name": "Shreyas Pimpalgaonkar",
          "author_login": "shreyaspimpalgaonkar",
          "committed_at": "2025-04-15T10:42:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "373adbbf3eeecc260e314524be94210fefbb5552",
          "body": null,
          "is_bot": false,
          "headline": "update metadata schema with cost",
          "author_name": "TheDude",
          "author_login": "kartik4949",
          "committed_at": "2025-04-15T01:42:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "acd64fe3cda2f3e72678f5c9b8d3c2e702738c3d",
          "body": null,
          "is_bot": false,
          "headline": "improve projected total, projected remaining UI (#631)",
          "author_name": "Charlie Cheng-Jie Ji",
          "author_login": "CharlieJCJ",
          "committed_at": "2025-04-14T05:32:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "52f08e95323b7da08a6f950fd41aee3ad14c1bb4",
          "body": "* First round of updates on the documentation.\n\n* Updates",
          "is_bot": false,
          "headline": "Update README to add new updates and a better example (#628)",
          "author_name": "Mahesh Sathiamoorthy",
          "author_login": "madiator",
          "committed_at": "2025-04-13T21:22:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c6088431ba1185e01a82e34970f3e9bfcf3d3529",
          "body": "* fix deepseek rpm\n\n* make semaphore release",
          "is_bot": false,
          "headline": "Fix/deepseek/rpm (#630)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-04-13T17:59:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b506f59167c24c41cf6e431fd8e76463d3b57b0c",
          "body": null,
          "is_bot": false,
          "headline": "add fixes for rpm display and frequent tqdm update for tqdm (#629)",
          "author_name": "Charlie Cheng-Jie Ji",
          "author_login": "CharlieJCJ",
          "committed_at": "2025-04-13T08:38:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7542d8f33c168d4ec0777dba5a008562993839f2",
          "body": null,
          "is_bot": false,
          "headline": "bump: 0.1.23.post1",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-04-11T23:19:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d4ed48a9b463bf2c7c49ca07e0e5d0c36701db29",
          "body": null,
          "is_bot": false,
          "headline": "ref: remove curator viewer related code",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-04-11T23:19:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4486f7b8fc01f86c57c5871fd6a1d2207bf97ab5",
          "body": null,
          "is_bot": false,
          "headline": "fix: set CURATOR_VIEWER=\"true\" in push_to_viewer",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-04-11T22:42:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b8d96b318483a9c935c9f4d35b17707095b30337",
          "body": null,
          "is_bot": false,
          "headline": "fix: exclude flaky litellm cost requests",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-04-11T22:42:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ecd7e27fe9bb8b8470467373fb22c86efeb3a2ce",
          "body": null,
          "is_bot": false,
          "headline": "fix: conftest to use none",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-04-11T22:42:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fedc315c9ebb02dced0037ed94f328f08f4f9446",
          "body": null,
          "is_bot": false,
          "headline": "fix: lint",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-04-11T22:42:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "305b6f487b153269202910b3fa3039c8ad7d3e30",
          "body": null,
          "is_bot": false,
          "headline": "fix: add more robust assertions for tests",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-04-11T22:42:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "17137b193e2adf0fb4fc03d6d846128287f71273",
          "body": null,
          "is_bot": false,
          "headline": "fix: gemini batch error",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-04-11T22:42:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2c3c9becaf6d0e479cc3a286d562bebfb47b5600",
          "body": null,
          "is_bot": false,
          "headline": "fix: gemini batch test",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-04-11T22:42:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "63e60e57b508a92e885dd5a97828206ab34d793c",
          "body": null,
          "is_bot": false,
          "headline": "fix: failing tests",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-04-11T22:42:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c97f51a44c066386ae72d530247dee4c60fb9cc7",
          "body": null,
          "is_bot": false,
          "headline": "fix: auto confirmation tests",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-04-11T22:42:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e1327735693facf44b04295d660f346deb9f6046",
          "body": null,
          "is_bot": false,
          "headline": "feat: ask users to confirm during batch cancellation",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-04-11T22:42:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1add9eed87abc17dd45761fed605d3080d68f674",
          "body": null,
          "is_bot": false,
          "headline": "fix: address some comments",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-04-11T22:42:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c34a7b31b66e1ed9f8a41ec7c831f36683ad69bc",
          "body": null,
          "is_bot": false,
          "headline": "fix: failing test by repatching",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-04-11T22:42:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c52b8b5618db0bdc1da1cd5fc28a5b65146dfb10",
          "body": null,
          "is_bot": false,
          "headline": "fix: lint",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-04-11T22:42:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c430319adca77e74ccc45ce6aa77162555a530f6",
          "body": null,
          "is_bot": false,
          "headline": "fix: multiple bugs in batch cancellation logic + add tests",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-04-11T22:42:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0ade0e99cd51d06a412b2ba2e86f8f5f7b67dc80",
          "body": null,
          "is_bot": false,
          "headline": "fix: cancel does not any arguments, remove working_dir",
          "author_name": "Trung Vu",
          "author_login": "vutrung96",
          "committed_at": "2025-04-11T22:42:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "75d09dcd37aa7a1014f67705c28ee09ee17e110d",
          "body": null,
          "is_bot": false,
          "headline": "bump 0.1.23 (#625)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-04-11T06:38:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "db241310127d35c506a616dae1ad1f1da1cbbd61",
          "body": null,
          "is_bot": false,
          "headline": "update (#621)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-04-10T17:43:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eddd131b9655bcf2a10107b7d01da66902314a7f",
          "body": null,
          "is_bot": false,
          "headline": "Disable loud log (#624)",
          "author_name": "Ryan Marten",
          "author_login": "RyanMarten",
          "committed_at": "2025-04-10T16:42:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b30cd17ea55cd3e46be776126c12d13595aaf7d3",
          "body": "* feat: make long lived requests support in openai online for deepseek\n\n* fix: update rstrip in baseurl online processor\n\n* update semaphore\n\n* update error msg",
          "is_bot": false,
          "headline": "Feat/openai/deepseek api (#579)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-04-08T14:41:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6c3ecfbd2fb921e63df0086079d5783b8f198fa0",
          "body": "* feat: add failed requests jsonl\n\n* fix\n\n* fix test",
          "is_bot": false,
          "headline": "feat: add failed requests jsonl (#615)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-04-08T12:44:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d516a59041b507d555bcb3dc645ae88186ae083e",
          "body": "* update config map\n\n* update output costs and rate limits\n\n* update new meta models and fix deepseek model",
          "is_bot": false,
          "headline": "Add llama4 models from klusterAI (#622)",
          "author_name": "Shreyas Pimpalgaonkar",
          "author_login": "shreyaspimpalgaonkar",
          "committed_at": "2025-04-08T11:41:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ab907705e096ad17cf1b9c59d149557859ede9c4",
          "body": "* feat: fix gemini batch parts key missing\n\n* ref: handle recitation logic for gemini batch\n\n* ref: serialize citatoins\n\n* update",
          "is_bot": false,
          "headline": "feat: fix gemini batch parts key missing (#612)",
          "author_name": "The Dude",
          "author_login": "kartik4949",
          "committed_at": "2025-04-06T19:03:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2c68f36b44a5cbc6cfcb579444b4eac024a242b1",
          "body": "* update config map\n\n* update output costs and rate limits",
          "is_bot": false,
          "headline": "update config map for kluster (#620)",
          "author_name": "Shreyas Pimpalgaonkar",
          "author_login": "shreyaspimpalgaonkar",
          "committed_at": "2025-04-06T19:01:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d1c355e053fc519ea6f196843b86a5a10910cf98",
          "body": "feat: improve tqdm CLI display and batch tracking; unify cost calc; update env flags\n\n- Init tqdm CLI display with checkpointing\n- Add logger viewer link, message format, and refresh interval variable for logger\n- Fix and unify batch cost/statistics calculation via status tracker\n- Support online mo\n[…]\nUpdate environment flag to CURATOR_DISABLE_RICH_DISPLAY and document all flags\n- Revert test comments; update tests for resubmitted batches\n- General fixes: linting, imports, RPM calc, and test passes",
          "is_bot": false,
          "headline": "feat/env-disable-rich-cli (#600)",
          "author_name": "Charlie Cheng-Jie Ji",
          "author_login": "CharlieJCJ",
          "committed_at": "2025-04-05T07:18:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2461788b2e03e762df448a753c50dd04b079fc71",
          "body": null,
          "is_bot": false,
          "headline": "remove split from card template (#619)",
          "author_name": "Daniel van Strien",
          "author_login": "davanstrien",
          "committed_at": "2025-04-04T16:40:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ae6fbf3de271a8dbce9c5f56bdf6638d15353e03",
          "body": "* new curator cli gif",
          "is_bot": false,
          "headline": "Update curator rich cli gif  (#617)",
          "author_name": "Charlie Cheng-Jie Ji",
          "author_login": "CharlieJCJ",
          "committed_at": "2025-04-03T19:49:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 26,
      "commits_last_year": 22,
      "latest_release_at": "2026-03-15T17:57:15Z",
      "latest_release_tag": "v0.1.27",
      "releases_from_tags": false,
      "days_since_last_push": 4,
      "active_weeks_last_year": 9,
      "days_since_latest_release": 133,
      "mean_days_between_releases": 42.4
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 50,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "bespokelabs-curator",
          "exists": true,
          "license": "Apache-2.0",
          "keywords": [
            "ai",
            "curator",
            "bespoke",
            "License :: OSI Approved :: Apache Software License",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.10",
            "Programming Language :: Python :: 3.11",
            "Programming Language :: Python :: 3.12"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/bespokelabs-curator/",
          "is_deprecated": false,
          "latest_version": "0.1.29",
          "repository_url": "https://github.com/bespokelabsai/curator",
          "versions_count": 57,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 25080,
          "first_published_at": "2024-11-06T21:25:39.101920Z",
          "latest_published_at": "2026-07-13T12:17:52.112306Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 13
        }
      ]
    },
    "popularity": {
      "forks": 143,
      "stars": 1704,
      "watchers": 11,
      "fork_history": {
        "days": [
          {
            "date": "2024-11-14",
            "count": 1
          },
          {
            "date": "2024-11-16",
            "count": 1
          },
          {
            "date": "2024-12-14",
            "count": 1
          },
          {
            "date": "2024-12-22",
            "count": 1
          },
          {
            "date": "2024-12-28",
            "count": 1
          },
          {
            "date": "2024-12-31",
            "count": 1
          },
          {
            "date": "2025-01-05",
            "count": 1
          },
          {
            "date": "2025-01-07",
            "count": 1
          },
          {
            "date": "2025-01-15",
            "count": 5
          },
          {
            "date": "2025-01-16",
            "count": 8
          },
          {
            "date": "2025-01-17",
            "count": 2
          },
          {
            "date": "2025-01-18",
            "count": 2
          },
          {
            "date": "2025-01-20",
            "count": 2
          },
          {
            "date": "2025-01-22",
            "count": 3
          },
          {
            "date": "2025-01-23",
            "count": 2
          },
          {
            "date": "2025-01-25",
            "count": 2
          },
          {
            "date": "2025-01-26",
            "count": 1
          },
          {
            "date": "2025-01-28",
            "count": 1
          },
          {
            "date": "2025-01-29",
            "count": 1
          },
          {
            "date": "2025-01-30",
            "count": 1
          },
          {
            "date": "2025-01-31",
            "count": 2
          },
          {
            "date": "2025-02-01",
            "count": 1
          },
          {
            "date": "2025-02-02",
            "count": 1
          },
          {
            "date": "2025-02-03",
            "count": 1
          },
          {
            "date": "2025-02-04",
            "count": 1
          },
          {
            "date": "2025-02-05",
            "count": 1
          },
          {
            "date": "2025-02-06",
            "count": 3
          },
          {
            "date": "2025-02-10",
            "count": 2
          },
          {
            "date": "2025-02-14",
            "count": 2
          },
          {
            "date": "2025-02-16",
            "count": 1
          },
          {
            "date": "2025-02-18",
            "count": 1
          },
          {
            "date": "2025-02-20",
            "count": 1
          },
          {
            "date": "2025-02-21",
            "count": 1
          },
          {
            "date": "2025-02-26",
            "count": 1
          },
          {
            "date": "2025-02-27",
            "count": 2
          },
          {
            "date": "2025-03-05",
            "count": 1
          },
          {
            "date": "2025-03-08",
            "count": 1
          },
          {
            "date": "2025-03-09",
            "count": 1
          },
          {
            "date": "2025-03-11",
            "count": 2
          },
          {
            "date": "2025-03-12",
            "count": 1
          },
          {
            "date": "2025-03-13",
            "count": 1
          },
          {
            "date": "2025-03-16",
            "count": 3
          },
          {
            "date": "2025-03-20",
            "count": 2
          },
          {
            "date": "2025-03-25",
            "count": 1
          },
          {
            "date": "2025-03-28",
            "count": 3
          },
          {
            "date": "2025-03-29",
            "count": 1
          },
          {
            "date": "2025-04-02",
            "count": 3
          },
          {
            "date": "2025-04-03",
            "count": 2
          },
          {
            "date": "2025-04-09",
            "count": 1
          },
          {
            "date": "2025-04-10",
            "count": 1
          },
          {
            "date": "2025-04-14",
            "count": 1
          },
          {
            "date": "2025-04-16",
            "count": 1
          },
          {
            "date": "2025-04-18",
            "count": 1
          },
          {
            "date": "2025-04-23",
            "count": 3
          },
          {
            "date": "2025-04-28",
            "count": 2
          },
          {
            "date": "2025-05-03",
            "count": 1
          },
          {
            "date": "2025-05-07",
            "count": 1
          },
          {
            "date": "2025-05-15",
            "count": 1
          },
          {
            "date": "2025-05-25",
            "count": 1
          },
          {
            "date": "2025-05-28",
            "count": 1
          },
          {
            "date": "2025-06-09",
            "count": 1
          },
          {
            "date": "2025-06-13",
            "count": 1
          },
          {
            "date": "2025-06-19",
            "count": 1
          },
          {
            "date": "2025-06-26",
            "count": 1
          },
          {
            "date": "2025-06-30",
            "count": 1
          },
          {
            "date": "2025-07-01",
            "count": 1
          },
          {
            "date": "2025-07-03",
            "count": 1
          },
          {
            "date": "2025-07-06",
            "count": 1
          },
          {
            "date": "2025-07-13",
            "count": 1
          },
          {
            "date": "2025-07-30",
            "count": 1
          },
          {
            "date": "2025-08-05",
            "count": 1
          },
          {
            "date": "2025-08-11",
            "count": 1
          },
          {
            "date": "2025-08-28",
            "count": 1
          },
          {
            "date": "2025-09-09",
            "count": 1
          },
          {
            "date": "2025-09-28",
            "count": 1
          },
          {
            "date": "2025-10-11",
            "count": 1
          },
          {
            "date": "2025-10-16",
            "count": 1
          },
          {
            "date": "2025-11-03",
            "count": 1
          },
          {
            "date": "2025-11-06",
            "count": 1
          },
          {
            "date": "2025-11-16",
            "count": 1
          },
          {
            "date": "2025-11-19",
            "count": 1
          },
          {
            "date": "2025-11-23",
            "count": 1
          },
          {
            "date": "2025-11-26",
            "count": 1
          },
          {
            "date": "2025-12-12",
            "count": 1
          },
          {
            "date": "2026-01-02",
            "count": 1
          },
          {
            "date": "2026-01-09",
            "count": 1
          },
          {
            "date": "2026-01-22",
            "count": 1
          },
          {
            "date": "2026-01-23",
            "count": 1
          },
          {
            "date": "2026-01-25",
            "count": 1
          },
          {
            "date": "2026-01-26",
            "count": 1
          },
          {
            "date": "2026-02-08",
            "count": 1
          },
          {
            "date": "2026-02-25",
            "count": 1
          },
          {
            "date": "2026-03-01",
            "count": 1
          },
          {
            "date": "2026-03-13",
            "count": 1
          },
          {
            "date": "2026-03-14",
            "count": 1
          },
          {
            "date": "2026-03-25",
            "count": 1
          },
          {
            "date": "2026-04-20",
            "count": 1
          },
          {
            "date": "2026-04-21",
            "count": 1
          },
          {
            "date": "2026-04-27",
            "count": 1
          },
          {
            "date": "2026-05-01",
            "count": 1
          },
          {
            "date": "2026-05-08",
            "count": 1
          },
          {
            "date": "2026-06-10",
            "count": 1
          },
          {
            "date": "2026-06-15",
            "count": 1
          },
          {
            "date": "2026-07-09",
            "count": 1
          },
          {
            "date": "2026-07-16",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 141,
        "total_forks": 143
      },
      "star_history": null,
      "open_issues_and_prs": 71
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "Makefile"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 35987,
      "source_files_sampled": 175,
      "oversized_source_files": 0,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "pyproject.toml"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [
          {
            "name": "litellm",
            "direct": true,
            "version": "1.83.7",
            "severity": "critical",
            "ecosystem": "pypi",
            "cvss_score": 9.8,
            "advisory_ids": [
              "GHSA-4g5m-c9r5-49xf",
              "GHSA-4xpc-pv4p-pm3w",
              "GHSA-7488-6r32-c95q",
              "GHSA-qrc4-49gv-mv9m",
              "GHSA-wpfp-gwwc-vwq6",
              "GHSA-wxxx-gvqv-xp7p",
              "PYSEC-2026-2598",
              "PYSEC-2026-2600",
              "PYSEC-2026-2601",
              "PYSEC-2026-3476"
            ],
            "fixed_version": "1.84.0",
            "advisory_count": 12,
            "oldest_advisory_days": 76
          },
          {
            "name": "aiohttp",
            "direct": false,
            "version": "3.13.5",
            "severity": "high",
            "ecosystem": "pypi",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-2fqr-mr3j-6wp8",
              "GHSA-4fvr-rgm6-gqmc",
              "GHSA-4m7w-qmgq-4wj5",
              "GHSA-63hw-fmq6-xxg2",
              "GHSA-9x8q-7h8h-wcw9",
              "GHSA-g3cq-j2xw-wf74",
              "GHSA-hg6j-4rv6-33pg",
              "GHSA-hpj7-wq8m-9hgp",
              "GHSA-jg22-mg44-37j8",
              "GHSA-m6qw-4cw2-hm4m"
            ],
            "fixed_version": "3.14.1",
            "advisory_count": 22,
            "oldest_advisory_days": 54
          },
          {
            "name": "click",
            "direct": false,
            "version": "8.1.8",
            "severity": "high",
            "ecosystem": "pypi",
            "cvss_score": 7.2,
            "advisory_ids": [
              "PYSEC-2026-2132"
            ],
            "fixed_version": "8.3.3",
            "advisory_count": 1,
            "oldest_advisory_days": 87
          },
          {
            "name": "google-cloud-aiplatform",
            "direct": false,
            "version": "1.71.1",
            "severity": "high",
            "ecosystem": "pypi",
            "cvss_score": null,
            "advisory_ids": [
              "GHSA-wh2j-26j7-9728",
              "PYSEC-2026-2500"
            ],
            "fixed_version": "1.133.0",
            "advisory_count": 2,
            "oldest_advisory_days": 156
          },
          {
            "name": "python-dotenv",
            "direct": false,
            "version": "1.0.1",
            "severity": "moderate",
            "ecosystem": "pypi",
            "cvss_score": 6.6,
            "advisory_ids": [
              "GHSA-mf9w-mj56-hr94",
              "PYSEC-2026-2270"
            ],
            "fixed_version": "1.2.2",
            "advisory_count": 2,
            "oldest_advisory_days": 97
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "high": 3,
          "critical": 1,
          "moderate": 1
        },
        "advisory_count": 39,
        "affected_count": 5,
        "assessed_count": 114,
        "malicious_count": 0,
        "assessed_package": "pypi:bespokelabs-curator@0.1.29",
        "unassessed_count": 0,
        "direct_affected_count": 1
      },
      "ecosystems": [
        "pypi"
      ],
      "dependencies": [
        {
          "name": "pydantic",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.9.2"
        },
        {
          "name": "datasets",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "^3.0.2"
        },
        {
          "name": "instructor",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "^1.6.3"
        },
        {
          "name": "pandas",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "2.2.2"
        },
        {
          "name": "xxhash",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "^3.5.0"
        },
        {
          "name": "tqdm",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "^4.67.0"
        },
        {
          "name": "matplotlib",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "^3.9.2"
        },
        {
          "name": "nest-asyncio",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "^1.6.0"
        },
        {
          "name": "rich",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "^13.7.0"
        },
        {
          "name": "litellm",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "1.83.7"
        },
        {
          "name": "tiktoken",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.7.0"
        },
        {
          "name": "aiofiles",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=22.0,<26.0"
        },
        {
          "name": "anthropic",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "^0.84.0"
        },
        {
          "name": "vertexai",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "1.71.1"
        },
        {
          "name": "vllm",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "^0.6.3"
        },
        {
          "name": "bespokelabs-sandbox",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "0.1.1"
        },
        {
          "name": "tinker",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "^0.8.0"
        },
        {
          "name": "posthog",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "^3.11.0"
        },
        {
          "name": "mistralai",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "^1.5.1"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "aiofiles",
            "direct": true,
            "version": "25.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "anthropic",
            "direct": true,
            "version": "0.84.0",
            "ecosystem": "pypi"
          },
          {
            "name": "bespokelabs-sandbox",
            "direct": true,
            "version": "0.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "datasets",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "datasets",
            "direct": true,
            "version": "3.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "datasets",
            "direct": true,
            "version": "3.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "instructor",
            "direct": true,
            "version": "1.14.5",
            "ecosystem": "pypi"
          },
          {
            "name": "litellm",
            "direct": true,
            "version": "1.83.7",
            "ecosystem": "pypi"
          },
          {
            "name": "matplotlib",
            "direct": true,
            "version": "3.10.8",
            "ecosystem": "pypi"
          },
          {
            "name": "mistralai",
            "direct": true,
            "version": "1.12.4",
            "ecosystem": "pypi"
          },
          {
            "name": "nest-asyncio",
            "direct": true,
            "version": "1.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pandas",
            "direct": true,
            "version": "2.2.2",
            "ecosystem": "pypi"
          },
          {
            "name": "posthog",
            "direct": true,
            "version": "3.25.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic",
            "direct": true,
            "version": "2.12.5",
            "ecosystem": "pypi"
          },
          {
            "name": "rich",
            "direct": true,
            "version": "13.9.4",
            "ecosystem": "pypi"
          },
          {
            "name": "tiktoken",
            "direct": true,
            "version": "0.12.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tinker",
            "direct": true,
            "version": "0.8.1",
            "ecosystem": "pypi"
          },
          {
            "name": "tqdm",
            "direct": true,
            "version": "4.67.3",
            "ecosystem": "pypi"
          },
          {
            "name": "vertexai",
            "direct": true,
            "version": "1.71.1",
            "ecosystem": "pypi"
          },
          {
            "name": "vllm",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "vllm",
            "direct": true,
            "version": "0.6.6.post1",
            "ecosystem": "pypi"
          },
          {
            "name": "xxhash",
            "direct": true,
            "version": "3.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "accelerate",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "aiohappyeyeballs",
            "direct": false,
            "version": "2.6.1",
            "ecosystem": "pypi"
          },
          {
            "name": "aiohttp",
            "direct": false,
            "version": "3.13.5",
            "ecosystem": "pypi"
          },
          {
            "name": "aiohttp-cors",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "pypi"
          },
          {
            "name": "aiosignal",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "airportsdata",
            "direct": false,
            "version": "20260304",
            "ecosystem": "pypi"
          },
          {
            "name": "annotated-doc",
            "direct": false,
            "version": "0.0.4",
            "ecosystem": "pypi"
          },
          {
            "name": "annotated-types",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "anyio",
            "direct": false,
            "version": "4.12.1",
            "ecosystem": "pypi"
          },
          {
            "name": "aryn-sdk",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "astor",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "pypi"
          },
          {
            "name": "async-timeout",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "attrs",
            "direct": false,
            "version": "25.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "backoff",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "backports-tarfile",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "bespokelabs-curator",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "bespokelabs-curator",
            "direct": false,
            "version": "0.1.16",
            "ecosystem": "pypi"
          },
          {
            "name": "blake3",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "pypi"
          },
          {
            "name": "certifi",
            "direct": false,
            "version": "2026.2.25",
            "ecosystem": "pypi"
          },
          {
            "name": "cffi",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "cfgv",
            "direct": false,
            "version": "3.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "charset-normalizer",
            "direct": false,
            "version": "3.4.5",
            "ecosystem": "pypi"
          },
          {
            "name": "click",
            "direct": false,
            "version": "8.1.8",
            "ecosystem": "pypi"
          },
          {
            "name": "cloudpickle",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "colorama",
            "direct": false,
            "version": "0.4.6",
            "ecosystem": "pypi"
          },
          {
            "name": "colorful",
            "direct": false,
            "version": "0.5.8",
            "ecosystem": "pypi"
          },
          {
            "name": "compressed-tensors",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "pypi"
          },
          {
            "name": "contourpy",
            "direct": false,
            "version": "1.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "coverage",
            "direct": false,
            "version": "7.13.4",
            "ecosystem": "pypi"
          },
          {
            "name": "cryptography",
            "direct": false,
            "version": "46.0.5",
            "ecosystem": "pypi"
          },
          {
            "name": "cycler",
            "direct": false,
            "version": "0.12.1",
            "ecosystem": "pypi"
          },
          {
            "name": "deepspeed",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "depyf",
            "direct": false,
            "version": "0.18.0",
            "ecosystem": "pypi"
          },
          {
            "name": "dill",
            "direct": false,
            "version": "0.3.8",
            "ecosystem": "pypi"
          },
          {
            "name": "diskcache",
            "direct": false,
            "version": "5.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "distlib",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "distro",
            "direct": false,
            "version": "1.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "docstring-parser",
            "direct": false,
            "version": "0.17.0",
            "ecosystem": "pypi"
          },
          {
            "name": "docutils",
            "direct": false,
            "version": "0.22.4",
            "ecosystem": "pypi"
          },
          {
            "name": "einops",
            "direct": false,
            "version": "0.8.2",
            "ecosystem": "pypi"
          },
          {
            "name": "eval-type-backport",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "exceptiongroup",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "faiss-cpu",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "fastapi",
            "direct": false,
            "version": "0.135.1",
            "ecosystem": "pypi"
          },
          {
            "name": "fastuuid",
            "direct": false,
            "version": "0.14.0",
            "ecosystem": "pypi"
          },
          {
            "name": "filelock",
            "direct": false,
            "version": "3.25.2",
            "ecosystem": "pypi"
          },
          {
            "name": "fonttools",
            "direct": false,
            "version": "4.62.1",
            "ecosystem": "pypi"
          },
          {
            "name": "frozenlist",
            "direct": false,
            "version": "1.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "fsspec",
            "direct": false,
            "version": "2025.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "gguf",
            "direct": false,
            "version": "0.10.0",
            "ecosystem": "pypi"
          },
          {
            "name": "google-api-core",
            "direct": false,
            "version": "2.25.2",
            "ecosystem": "pypi"
          },
          {
            "name": "google-auth",
            "direct": false,
            "version": "2.49.1",
            "ecosystem": "pypi"
          },
          {
            "name": "google-cloud-aiplatform",
            "direct": false,
            "version": "1.71.1",
            "ecosystem": "pypi"
          },
          {
            "name": "google-cloud-bigquery",
            "direct": false,
            "version": "3.40.1",
            "ecosystem": "pypi"
          },
          {
            "name": "google-cloud-core",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "google-cloud-resource-manager",
            "direct": false,
            "version": "1.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "google-cloud-storage",
            "direct": false,
            "version": "2.19.0",
            "ecosystem": "pypi"
          },
          {
            "name": "google-crc32c",
            "direct": false,
            "version": "1.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "google-resumable-media",
            "direct": false,
            "version": "2.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "googleapis-common-protos",
            "direct": false,
            "version": "1.73.0",
            "ecosystem": "pypi"
          },
          {
            "name": "grpc-google-iam-v1",
            "direct": false,
            "version": "0.14.3",
            "ecosystem": "pypi"
          },
          {
            "name": "grpcio",
            "direct": false,
            "version": "1.78.0",
            "ecosystem": "pypi"
          },
          {
            "name": "grpcio-status",
            "direct": false,
            "version": "1.71.2",
            "ecosystem": "pypi"
          },
          {
            "name": "h11",
            "direct": false,
            "version": "0.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "h2",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "hf-xet",
            "direct": false,
            "version": "1.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "hpack",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "httpcore",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "pypi"
          },
          {
            "name": "httptools",
            "direct": false,
            "version": "0.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "httpx",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "pypi"
          },
          {
            "name": "huggingface-hub",
            "direct": false,
            "version": "1.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "hyperframe",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "identify",
            "direct": false,
            "version": "2.6.17",
            "ecosystem": "pypi"
          },
          {
            "name": "idna",
            "direct": false,
            "version": "3.11",
            "ecosystem": "pypi"
          },
          {
            "name": "importlib-metadata",
            "direct": false,
            "version": "8.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "iniconfig",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "interegular",
            "direct": false,
            "version": "0.3.3",
            "ecosystem": "pypi"
          },
          {
            "name": "invoke",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "isort",
            "direct": false,
            "version": "5.13.2",
            "ecosystem": "pypi"
          },
          {
            "name": "jaraco-classes",
            "direct": false,
            "version": "3.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jaraco-context",
            "direct": false,
            "version": "6.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "jaraco-functools",
            "direct": false,
            "version": "4.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jeepney",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jinja2",
            "direct": false,
            "version": "3.1.6",
            "ecosystem": "pypi"
          },
          {
            "name": "jiter",
            "direct": false,
            "version": "0.11.1",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema",
            "direct": false,
            "version": "4.23.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema-specifications",
            "direct": false,
            "version": "2025.9.1",
            "ecosystem": "pypi"
          },
          {
            "name": "keyring",
            "direct": false,
            "version": "25.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "kiwisolver",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "langchain",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-experimental",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-openai",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "lark",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "pypi"
          },
          {
            "name": "latex2sympy2",
            "direct": false,
            "version": "1.9.1",
            "ecosystem": "pypi"
          },
          {
            "name": "lm-format-enforcer",
            "direct": false,
            "version": "0.10.12",
            "ecosystem": "pypi"
          },
          {
            "name": "markdown-it-py",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "markupsafe",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "mdurl",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "mistral-common",
            "direct": false,
            "version": "1.5.6",
            "ecosystem": "pypi"
          },
          {
            "name": "monotonic",
            "direct": false,
            "version": "1.6",
            "ecosystem": "pypi"
          },
          {
            "name": "more-itertools",
            "direct": false,
            "version": "10.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mpmath",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "msgpack",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "msgspec",
            "direct": false,
            "version": "0.20.0",
            "ecosystem": "pypi"
          },
          {
            "name": "multidict",
            "direct": false,
            "version": "6.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "multiprocess",
            "direct": false,
            "version": "0.70.16",
            "ecosystem": "pypi"
          },
          {
            "name": "networkx",
            "direct": false,
            "version": "3.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "nh3",
            "direct": false,
            "version": "0.3.3",
            "ecosystem": "pypi"
          },
          {
            "name": "nodeenv",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "pypi"
          },
          {
            "name": "numpy",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "numpy",
            "direct": false,
            "version": "1.26.4",
            "ecosystem": "pypi"
          },
          {
            "name": "nvidia-cublas-cu12",
            "direct": false,
            "version": "12.4.5.8",
            "ecosystem": "pypi"
          },
          {
            "name": "nvidia-cuda-cupti-cu12",
            "direct": false,
            "version": "12.4.127",
            "ecosystem": "pypi"
          },
          {
            "name": "nvidia-cuda-nvrtc-cu12",
            "direct": false,
            "version": "12.4.127",
            "ecosystem": "pypi"
          },
          {
            "name": "nvidia-cuda-runtime-cu12",
            "direct": false,
            "version": "12.4.127",
            "ecosystem": "pypi"
          },
          {
            "name": "nvidia-cudnn-cu12",
            "direct": false,
            "version": "9.1.0.70",
            "ecosystem": "pypi"
          },
          {
            "name": "nvidia-cufft-cu12",
            "direct": false,
            "version": "11.2.1.3",
            "ecosystem": "pypi"
          },
          {
            "name": "nvidia-curand-cu12",
            "direct": false,
            "version": "10.3.5.147",
            "ecosystem": "pypi"
          },
          {
            "name": "nvidia-cusolver-cu12",
            "direct": false,
            "version": "11.6.1.9",
            "ecosystem": "pypi"
          },
          {
            "name": "nvidia-cusparse-cu12",
            "direct": false,
            "version": "12.3.1.170",
            "ecosystem": "pypi"
          },
          {
            "name": "nvidia-ml-py",
            "direct": false,
            "version": "13.590.48",
            "ecosystem": "pypi"
          },
          {
            "name": "nvidia-nccl-cu12",
            "direct": false,
            "version": "2.21.5",
            "ecosystem": "pypi"
          },
          {
            "name": "nvidia-nvjitlink-cu12",
            "direct": false,
            "version": "12.4.127",
            "ecosystem": "pypi"
          },
          {
            "name": "nvidia-nvtx-cu12",
            "direct": false,
            "version": "12.4.127",
            "ecosystem": "pypi"
          },
          {
            "name": "openai",
            "direct": false,
            "version": "2.30.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opencensus",
            "direct": false,
            "version": "0.11.4",
            "ecosystem": "pypi"
          },
          {
            "name": "opencensus-context",
            "direct": false,
            "version": "0.1.3",
            "ecosystem": "pypi"
          },
          {
            "name": "opencv-python-headless",
            "direct": false,
            "version": "4.11.0.86",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-api",
            "direct": false,
            "version": "1.40.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-exporter-otlp-proto-common",
            "direct": false,
            "version": "1.40.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-exporter-otlp-proto-http",
            "direct": false,
            "version": "1.40.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-exporter-prometheus",
            "direct": false,
            "version": "0.61b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-proto",
            "direct": false,
            "version": "1.40.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-sdk",
            "direct": false,
            "version": "1.40.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-semantic-conventions",
            "direct": false,
            "version": "0.61b0",
            "ecosystem": "pypi"
          },
          {
            "name": "outlines",
            "direct": false,
            "version": "0.1.11",
            "ecosystem": "pypi"
          },
          {
            "name": "outlines-core",
            "direct": false,
            "version": "0.1.26",
            "ecosystem": "pypi"
          },
          {
            "name": "packaging",
            "direct": false,
            "version": "26.0",
            "ecosystem": "pypi"
          },
          {
            "name": "partial-json-parser",
            "direct": false,
            "version": "0.2.1.1.post7",
            "ecosystem": "pypi"
          },
          {
            "name": "pdfplumber",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pillow",
            "direct": false,
            "version": "12.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pkginfo",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "pypi"
          },
          {
            "name": "platformdirs",
            "direct": false,
            "version": "4.9.4",
            "ecosystem": "pypi"
          },
          {
            "name": "pluggy",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pre-commit",
            "direct": false,
            "version": "4.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "prometheus-client",
            "direct": false,
            "version": "0.24.1",
            "ecosystem": "pypi"
          },
          {
            "name": "prometheus-fastapi-instrumentator",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "propcache",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "proto-plus",
            "direct": false,
            "version": "1.27.1",
            "ecosystem": "pypi"
          },
          {
            "name": "protobuf",
            "direct": false,
            "version": "5.29.6",
            "ecosystem": "pypi"
          },
          {
            "name": "psutil",
            "direct": false,
            "version": "6.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "py-cpuinfo",
            "direct": false,
            "version": "9.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "py-spy",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pyarrow",
            "direct": false,
            "version": "23.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pyasn1",
            "direct": false,
            "version": "0.6.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pyasn1-modules",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pycountry",
            "direct": false,
            "version": "26.2.16",
            "ecosystem": "pypi"
          },
          {
            "name": "pycparser",
            "direct": false,
            "version": "3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-core",
            "direct": false,
            "version": "2.41.5",
            "ecosystem": "pypi"
          },
          {
            "name": "pygments",
            "direct": false,
            "version": "2.19.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pyparsing",
            "direct": false,
            "version": "3.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest",
            "direct": false,
            "version": "8.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-asyncio",
            "direct": false,
            "version": "0.24.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-cov",
            "direct": false,
            "version": "6.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-dependency",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-timeout",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "python-dateutil",
            "direct": false,
            "version": "2.9.0.post0",
            "ecosystem": "pypi"
          },
          {
            "name": "python-discovery",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "pypi"
          },
          {
            "name": "python-dotenv",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytz",
            "direct": false,
            "version": "2026.1.post1",
            "ecosystem": "pypi"
          },
          {
            "name": "pywin32-ctypes",
            "direct": false,
            "version": "0.2.3",
            "ecosystem": "pypi"
          },
          {
            "name": "pyyaml",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "pyzmq",
            "direct": false,
            "version": "27.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ray",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "ray",
            "direct": false,
            "version": "2.54.0",
            "ecosystem": "pypi"
          },
          {
            "name": "readme-renderer",
            "direct": false,
            "version": "44.0",
            "ecosystem": "pypi"
          },
          {
            "name": "referencing",
            "direct": false,
            "version": "0.37.0",
            "ecosystem": "pypi"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "2026.2.28",
            "ecosystem": "pypi"
          },
          {
            "name": "requests",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "requests",
            "direct": false,
            "version": "2.32.5",
            "ecosystem": "pypi"
          },
          {
            "name": "requests-toolbelt",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "rfc3986",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "rpds-py",
            "direct": false,
            "version": "0.30.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ruff",
            "direct": false,
            "version": "0.8.6",
            "ecosystem": "pypi"
          },
          {
            "name": "safetensors",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "scikit-learn",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "scipy",
            "direct": false,
            "version": "1.15.1",
            "ecosystem": "pypi"
          },
          {
            "name": "secretstorage",
            "direct": false,
            "version": "3.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sentence-transformers",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sentencepiece",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "setuptools",
            "direct": false,
            "version": "82.0.1",
            "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": "smart-open",
            "direct": false,
            "version": "7.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "sniffio",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "starlette",
            "direct": false,
            "version": "0.52.1",
            "ecosystem": "pypi"
          },
          {
            "name": "sympy",
            "direct": false,
            "version": "1.13.1",
            "ecosystem": "pypi"
          },
          {
            "name": "tenacity",
            "direct": false,
            "version": "9.1.4",
            "ecosystem": "pypi"
          },
          {
            "name": "timeout-decorator",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tokenizers",
            "direct": false,
            "version": "0.22.2",
            "ecosystem": "pypi"
          },
          {
            "name": "tomli",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "torch",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "torch",
            "direct": false,
            "version": "2.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "torchvision",
            "direct": false,
            "version": "0.20.1",
            "ecosystem": "pypi"
          },
          {
            "name": "transformers",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "transformers",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "triton",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "twine",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "typer",
            "direct": false,
            "version": "0.26.7",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-extensions",
            "direct": false,
            "version": "4.15.0",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-inspection",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "tzdata",
            "direct": false,
            "version": "2025.3",
            "ecosystem": "pypi"
          },
          {
            "name": "urllib3",
            "direct": false,
            "version": "1.26.20",
            "ecosystem": "pypi"
          },
          {
            "name": "uvicorn",
            "direct": false,
            "version": "0.41.0",
            "ecosystem": "pypi"
          },
          {
            "name": "uvloop",
            "direct": false,
            "version": "0.22.1",
            "ecosystem": "pypi"
          },
          {
            "name": "vcrpy",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "virtualenv",
            "direct": false,
            "version": "21.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "watchfiles",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "websockets",
            "direct": false,
            "version": "16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "word2number",
            "direct": false,
            "version": "1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "wrapt",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "xformers",
            "direct": false,
            "version": "0.0.28.post3",
            "ecosystem": "pypi"
          },
          {
            "name": "xgrammar",
            "direct": false,
            "version": "0.1.32",
            "ecosystem": "pypi"
          },
          {
            "name": "yarl",
            "direct": false,
            "version": "1.23.0",
            "ecosystem": "pypi"
          },
          {
            "name": "zipp",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "pypi"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 248,
        "direct_count": 22,
        "indirect_count": 226
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 14,
        "merged_prs": 387,
        "open_issues": 57,
        "closed_ratio": 0.789,
        "closed_issues": 213,
        "closed_unmerged_prs": 57
      },
      "bus_factor": 3,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "RyanMarten",
          "commits": 369,
          "avatar_url": "https://avatars.githubusercontent.com/u/18333503?v=4"
        },
        {
          "type": "User",
          "login": "CharlieJCJ",
          "commits": 304,
          "avatar_url": "https://avatars.githubusercontent.com/u/55744150?v=4"
        },
        {
          "type": "User",
          "login": "vutrung96",
          "commits": 287,
          "avatar_url": "https://avatars.githubusercontent.com/u/12313075?v=4"
        },
        {
          "type": "User",
          "login": "kartik4949",
          "commits": 179,
          "avatar_url": "https://avatars.githubusercontent.com/u/38289341?v=4"
        },
        {
          "type": "User",
          "login": "madiator",
          "commits": 164,
          "avatar_url": "https://avatars.githubusercontent.com/u/1088491?v=4"
        },
        {
          "type": "User",
          "login": "shreyaspimpalgaonkar",
          "commits": 101,
          "avatar_url": "https://avatars.githubusercontent.com/u/27310144?v=4"
        },
        {
          "type": "User",
          "login": "adamoptimizer",
          "commits": 73,
          "avatar_url": "https://avatars.githubusercontent.com/u/194053190?v=4"
        },
        {
          "type": "User",
          "login": "Saharsh1005",
          "commits": 33,
          "avatar_url": "https://avatars.githubusercontent.com/u/60308409?v=4"
        },
        {
          "type": "User",
          "login": "marianna13",
          "commits": 16,
          "avatar_url": "https://avatars.githubusercontent.com/u/43296932?v=4"
        },
        {
          "type": "User",
          "login": "GeorgiosSmyrnis",
          "commits": 10,
          "avatar_url": "https://avatars.githubusercontent.com/u/26143743?v=4"
        }
      ],
      "contributors_sampled": 22,
      "top_contributor_share": 0.235
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "lint-and-test.yaml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": true
    },
    "security_signals": {
      "lockfiles": [
        "poetry.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-22T23:01:53Z",
      "oldest_open_prs": [
        {
          "number": 653,
          "created_at": "2025-04-26T06:12:38Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 675,
          "created_at": "2025-05-24T04:19:23Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 690,
          "created_at": "2025-06-13T09:51:24Z",
          "last_comment_at": "2025-06-13T11:16:55Z",
          "last_comment_author": "kartik4949"
        },
        {
          "number": 693,
          "created_at": "2025-06-26T08:28:34Z",
          "last_comment_at": "2025-07-03T01:26:02Z",
          "last_comment_author": "lyuwen"
        },
        {
          "number": 698,
          "created_at": "2025-10-21T12:46:40Z",
          "last_comment_at": "2025-10-24T08:41:58Z",
          "last_comment_author": "jinzhuer"
        },
        {
          "number": 709,
          "created_at": "2026-01-27T07:33:23Z",
          "last_comment_at": "2026-02-09T19:47:08Z",
          "last_comment_author": "agdhruv"
        },
        {
          "number": 713,
          "created_at": "2026-03-17T05:29:04Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 723,
          "created_at": "2026-07-08T07:19:31Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 724,
          "created_at": "2026-07-08T07:19:51Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 729,
          "created_at": "2026-07-13T20:54:21Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 730,
          "created_at": "2026-07-16T16:05:24Z",
          "last_comment_at": "2026-07-17T06:58:24Z",
          "last_comment_author": "RitwijParmar"
        },
        {
          "number": 731,
          "created_at": "2026-07-21T09:17:25Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 732,
          "created_at": "2026-07-22T14:53:24Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 733,
          "created_at": "2026-07-22T14:53:26Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-13T12:16:32Z",
      "ci_last_conclusion": "FAILURE",
      "oldest_open_issues": [
        {
          "number": 52,
          "created_at": "2024-11-10T22:13:08Z",
          "last_comment_at": "2025-01-05T22:23:39Z",
          "last_comment_author": "RyanMarten"
        },
        {
          "number": 102,
          "created_at": "2024-11-14T05:56:05Z",
          "last_comment_at": "2025-01-06T00:09:00Z",
          "last_comment_author": "RyanMarten"
        },
        {
          "number": 121,
          "created_at": "2024-11-15T18:25:06Z",
          "last_comment_at": "2025-01-15T21:04:48Z",
          "last_comment_author": "adsharma"
        },
        {
          "number": 124,
          "created_at": "2024-11-15T18:41:12Z",
          "last_comment_at": "2024-11-21T04:34:11Z",
          "last_comment_author": "RyanMarten"
        },
        {
          "number": 207,
          "created_at": "2024-12-04T19:56:07Z",
          "last_comment_at": "2025-03-02T22:06:54Z",
          "last_comment_author": "CharlieJCJ"
        },
        {
          "number": 233,
          "created_at": "2024-12-09T21:06:32Z",
          "last_comment_at": "2025-01-14T23:45:56Z",
          "last_comment_author": "RyanMarten"
        },
        {
          "number": 290,
          "created_at": "2024-12-26T06:37:54Z",
          "last_comment_at": "2025-01-26T06:30:09Z",
          "last_comment_author": "cryptowooser"
        },
        {
          "number": 293,
          "created_at": "2024-12-29T01:12:26Z",
          "last_comment_at": "2025-03-02T22:02:09Z",
          "last_comment_author": "RyanMarten"
        },
        {
          "number": 294,
          "created_at": "2024-12-29T04:16:11Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 301,
          "created_at": "2025-01-05T23:08:53Z",
          "last_comment_at": "2025-01-31T19:32:36Z",
          "last_comment_author": "RyanMarten"
        },
        {
          "number": 328,
          "created_at": "2025-01-08T20:46:39Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 351,
          "created_at": "2025-01-12T13:57:27Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 376,
          "created_at": "2025-01-17T20:12:21Z",
          "last_comment_at": "2025-01-17T20:19:56Z",
          "last_comment_author": "RyanMarten"
        },
        {
          "number": 399,
          "created_at": "2025-01-23T04:19:40Z",
          "last_comment_at": "2025-03-02T23:24:58Z",
          "last_comment_author": "RyanMarten"
        },
        {
          "number": 401,
          "created_at": "2025-01-23T19:23:52Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 414,
          "created_at": "2025-01-28T16:45:08Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 415,
          "created_at": "2025-01-28T16:46:47Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 416,
          "created_at": "2025-01-28T20:48:11Z",
          "last_comment_at": "2025-01-28T21:09:38Z",
          "last_comment_author": "RyanMarten"
        },
        {
          "number": 423,
          "created_at": "2025-01-30T01:51:20Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 436,
          "created_at": "2025-02-03T10:58:04Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/bespokelabsai/curator",
    "host": "github.com",
    "name": "curator",
    "owner": "bespokelabsai"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 68,
      "inputs": {
        "security": 10,
        "vitality": 72,
        "community": 73,
        "governance": 78,
        "engineering": 95
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 72,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "commits_last_year": 22,
              "human_commit_share": 1,
              "days_since_last_push": 4,
              "active_weeks_last_year": 9
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 4 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 4
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "9/52 weeks with commits",
                "points": 6.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 9
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "22 commits in the last year",
                "points": 12.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 22
                    }
                  }
                ],
                "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": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "releases_count": 26,
              "latest_release_tag": "v0.1.27",
              "releases_from_tags": false,
              "days_since_latest_release": 133,
              "mean_days_between_releases": 42.4
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "26 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 26
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 133 days ago",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 133
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~42.4 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 42.4
                    }
                  }
                ],
                "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": 13,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 13 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 13
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "good",
        "name": "Community & Adoption",
        "value": 73,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "good",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 76,
            "inputs": {
              "forks": 143,
              "stars": 1704,
              "watchers": 11,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "1,704 stars",
                "points": 52.4,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 1704
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "143 forks",
                "points": 17.9,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 143
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "11 watchers",
                "points": 5.6,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 11
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "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 (Apache-2.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "Apache-2.0"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 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": "good",
            "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": 73,
            "inputs": {
              "packages": [
                "bespokelabs-curator"
              ],
              "dependents": null,
              "ecosystems": "pypi",
              "total_downloads": null,
              "monthly_downloads": 25080
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "25,080 downloads/month across pypi",
                "points": 58.7,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 25080,
                      "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": "good",
        "name": "Sustainability & Governance",
        "value": 78,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "good",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 74,
            "inputs": {
              "bus_factor": 3,
              "contributors_sampled": 22,
              "top_contributor_share": 0.235
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "3 contributor(s) cover half of all commits",
                "points": 36,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 24% of commits",
                "points": 17.2,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 24
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "22 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 22
                    }
                  }
                ],
                "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": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 83,
            "inputs": {
              "merged_prs": 387,
              "open_issues": 57,
              "closed_issues": 213,
              "issue_closed_ratio": 0.789,
              "closed_unmerged_prs": 57
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "79% of issues closed",
                "points": 36.9,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 79
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "387/444 decided PRs merged",
                "points": 33.3,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 387,
                      "decided": 444
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "OpenSSF Scorecard unavailable",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 59,
            "inputs": {
              "followers": 128,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "bespokelabsai",
              "public_repos": 17,
              "account_age_days": 825
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "128 followers of bespokelabsai",
                "points": 15.2,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 128,
                      "login": "bespokelabsai"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "17 public repos, account ~2 yr old",
                "points": 13.7,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 17
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 2
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "bespokelabs-curator"
              ],
              "ecosystems": "pypi",
              "any_deprecated": false,
              "min_days_since_publish": 13
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on pypi",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "pypi"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 13 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 13
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "57 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 57
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "excellent",
        "name": "Engineering Quality",
        "value": 95,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "excellent",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": true
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "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": 16,
                "status": "met",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 9.6,
                "status": "met",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "OpenSSF Scorecard unavailable",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "topics": [
                "synthetic-data",
                "agents",
                "llm",
                "prompt",
                "python",
                "synthetic-dataset-generation",
                "deep-learning",
                "fine-tuning",
                "instruction-tuning",
                "machine-learning",
                "natural-language-processing"
              ],
              "has_wiki": true,
              "homepage": "https://docs.bespokelabs.ai/bespoke-curator",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://docs.bespokelabs.ai/bespoke-curator",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "11 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 11
                    }
                  }
                ],
                "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": 10,
        "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": [
                "poetry.lock"
              ],
              "manifests": [
                "pyproject.toml"
              ],
              "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": "at_risk",
            "name": "Dependency advisories",
            "note": "Matched the pypi:bespokelabs-curator@0.1.29 runtime dependency closure — what installing the published package pulls in — 114 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "pypi:bespokelabs-curator@0.1.29",
                  "assessed": 114
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 44,
            "inputs": {
              "source": "osv",
              "advisories": 39,
              "affected_packages": 5,
              "assessed_packages": 114,
              "unassessed_packages": 0,
              "affected_by_severity": "critical 1, high 3, moderate 1",
              "direct_affected_packages": 1
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "1 affected: litellm 1.83.7 (critical 9.8)",
                "points": 7.6,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_affected",
                    "params": {
                      "count": 1,
                      "packages": "litellm 1.83.7 (critical 9.8)"
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "4 affected: aiohttp 3.13.5 (high 7.5), click 8.1.8 (high 7.2), google-cloud-aiplatform 1.71.1 (high), +1 more",
                "points": 6.6,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_affected",
                    "params": {
                      "count": 4,
                      "packages": "aiohttp 3.13.5 (high 7.5), click 8.1.8 (high 7.2), google-cloud-aiplatform 1.71.1 (high)"
                    }
                  },
                  {
                    "code": "advisories_affected_more",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "2 advisory-carrying package(s) unaddressed past 90 days; oldest published 156 days ago",
                "points": 29.9,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_stale",
                    "params": {
                      "days": 90,
                      "count": 2,
                      "oldest": 156
                    }
                  }
                ],
                "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": 114,
              "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": 8
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 58,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.99,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "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": "99 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 99,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "good",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 79,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "poetry.lock"
              ],
              "has_dockerfile": false,
              "typed_language": false,
              "bootstrap_files": [
                "Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [],
              "agent_commit_share": 0.12,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "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": 11,
                "status": "met",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "12 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 12,
                      "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": "moderate",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "primary_language": "Python",
              "largest_source_bytes": 35987,
              "source_files_sampled": 175,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Python without a type-check config",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_typecheck_config_language",
                    "params": {
                      "language": "Python"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/175 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 175,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "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",
    "OpenSSF Scorecard did not return a usable result (exit code -9); skipping Scorecard checks"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-27T08:56:25.673742Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/b/bespokelabsai/curator.svg",
  "full_name": "bespokelabsai/curator",
  "license_state": "standard",
  "license_spdx": "Apache-2.0"
}

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

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

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