Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 1.13.0 · 2026-07-27 08:56 UTC

bespokelabsai / curator

Synthetic data curation for post-training and structured data extraction

PythonApache-2.0★ 1.704 Sterne⑂ 143 Forksseit Okt. 2024Auf GitHub ansehen ↗

bespokelabsai/curator erreicht einen Gesundheitsindex von 68 von 100 und liegt damit im Bereich Mittel. Am stärksten schneidet es bei Engineering Quality (95/100) ab, am schwächsten bei Security (10/100). Zuletzt vor 4 Tagen aktualisiert. 3 Mitwirkende tragen den Großteil der jüngsten Arbeit.

68
gesamt / 100
Mittel

Software-Gesundheitsindex

Metriken werden auf einer Skala von 1–100 in gewichtete Kategorien gruppiert. Der Gesamtwert beginnt als ihr Mittel; sobald öffentliche Evidenz die Richtlinie für Hochrisikojurisdiktionen auslöst, wird die Bewertung angepasst und erhält die Obergrenze 49 (Gefährdet). AI Readiness liegt außerhalb.

68
Exzellent85-100Vorbildlich; erfüllt im Wesentlichen alle geprüften Kriterien
Gut70-84Gesund; geringfügige Lücken
Mittel50-69Akzeptabel mit deutlichen Lücken; Überprüfung empfohlen
Gefährdet30-49Erhebliche Schwächen; eine Übernahme erfordert Vorsicht
Kritisch1-29Schwerwiegende Probleme (aufgegeben, nur ein Maintainer, keine Hygiene)
VitalitätCommunity &VerbreitungNachhaltigkeit &GovernanceEngineering-QualitätSicherheitAI Readiness

Bewertungsprofil

Jede Achse ist eine Kategorie. Die Form zählt mehr als der Durchschnitt — ein gesundes Projekt füllt die gesamte Fläche, während ein Profil aus Spitzen und Kratern bedeutet, dass Stärke in einer Dimension Risiken in einer anderen verdeckt.

Eigentümerschaft

Bespoke LabsOrganisation
128 Follower17 öffentliche Reposseit Apr. 2024

Dieses Repository wird von einer Organisation getragen — geteilte, rechenschaftspflichtige Trägerschaft, die jeden einzelnen Maintainer überdauern kann.

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlichtTags
PyPIbespokelabs-curator0.1.2925.08057vor 13 Tagenaicuratorbespoke

Metriken nach Kategorie

Vitalität

Lebt das Projekt — wird Code geschrieben und werden Releases ausgeliefert?

72Gut · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 4 Tagen
6.2/36Commit-Rhythmus — 9/52 Wochen mit Commits
12.2/18Commit-Volumen — 22 Commits im letzten Jahr
0/10OpenSSF Scorecard: Maintained — keine Daten
Verwendete Eingangsdaten
commits_last_year22
human_commit_share1
days_since_last_push4
active_weeks_last_year9
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 26 Releases veröffentlicht
27/36Release-Aktualität — letztes Release vor 133 Tagen
27/27Release-Rhythmus — ein Release etwa alle 42,4 Tage
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count26
latest_release_tagv0.1.27
releases_from_tagsnein
days_since_latest_release133
mean_days_between_releases42,4

Community & Verbreitung

Hat das Projekt Nutzer, Downloads, Aufmerksamkeit und ein einladendes Umfeld für Beitragende?

73Gut · 18 % des Gesamtindex
Wie die Bewertung erfolgt
52.4/60Stars — 1.704 Stars
17.9/25Forks — 143 Forks
5.6/15Watcher — 11 Watcher
Verwendete Eingangsdaten
forks143
stars1.704
watchers11
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (Apache-2.0)
18/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingja
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templatenein
Wie die Bewertung erfolgt
58.7/80Downloads pro Monat — 25.080 Downloads/Monat über pypi
0/20Abhängige in der Registry — von diesem Ökosystem nicht ausgewiesen
Verwendete Eingangsdaten
packagesbespokelabs-curator
dependents
ecosystemspypi
total_downloads
monthly_downloads25.080
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Abhängige in der Registry. Die verbleibenden Gewichte wurden renormalisiert.

Nachhaltigkeit & Governance

Überdauert das Projekt die Menschen, die es tragen — Bus-Faktor, Reaktionsfähigkeit, Trägerschaft und Paketpflege?

78Gut · 24 % des Gesamtindex
Wie die Bewertung erfolgt
36/54Bus-Faktor — 3 Beitragende decken die Hälfte aller Commits ab
17.2/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 24 % der Commits
13.5/13.5Breite der Beitragenden — 22 Beitragende
0/10OpenSSF Scorecard: Contributors — keine Daten
Verwendete Eingangsdaten
bus_factor3
contributors_sampled22
top_contributor_share0,235
Wie die Bewertung erfolgt
36.9/46.8Issue-Lösungsquote — 79 % der Issues geschlossen
33.3/38.3PR-Annahme — 387/444 entschiedene PRs gemergt
0/15OpenSSF Scorecard: Code-Review — keine Daten
Verwendete Eingangsdaten
merged_prs387
open_issues57
closed_issues213
issue_closed_ratio0,789
closed_unmerged_prs57
Wie die Bewertung erfolgt
30/30Organisatorische Trägerschaft — im Besitz einer Organisation
0/20Verifizierte Domain
15.2/25Reichweite des Inhabers — 128 Follower von bespokelabsai
13.7/25Kontohistorie — 17 öffentliche Repos, Kontoalter ca. 2 Jahre
Verwendete Eingangsdaten
followers128
owner_typeOrganization
is_verified
owner_loginbespokelabsai
public_repos17
account_age_days825

Paketpflege

100Exzellent
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 1 Paket(e) auf pypi
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 13 Tagen
20/20Versionshistorie — 57 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packagesbespokelabs-curator
ecosystemspypi
any_deprecatednein
min_days_since_publish13

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

95Exzellent · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 1 Workflow(s)
24/24Tests vorhanden
16/16Linter-Konfiguration
9.6/9.6Pre-Commit-Hooks
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — keine Daten
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfignein
has_linter_configja
has_precommit_configja

Dokumentation

100Exzellent
Wie die Bewertung erfolgt
30/30README
25/25Dokumentationsverzeichnis
15/15Dokumentations-/Homepage-Site — https://docs.bespokelabs.ai/bespoke-curator
10/10Repository-Beschreibung
10/10Topics — 11 Topics
10/10Wiki
Verwendete Eingangsdaten
topicssynthetic-data, agents, llm, prompt, python, synthetic-dataset-generation, deep-learning, fine-tuning, instruction-tuning, machine-learning, natural-language-processing
has_wikija
homepagehttps://docs.bespokelabs.ai/bespoke-curator
has_readmeja
has_docs_dirja
has_descriptionja

Sicherheit

Sind die sichtbaren Sicherheits- und Lieferkettenpraktiken belastbar, ohne ungeklärte Exposition gegenüber Hochrisikojurisdiktionen?

10Kritisch · 16 % des Gesamtindex
Wie die Bewertung erfolgt
0/30Sicherheitsrichtlinie (SECURITY.md)
0/25Dependabot-Konfiguration
0/25Lockfiles für Abhängigkeiten — veröffentlichte Bibliothek — Lockfiles sind Sache der Anwendung, hier nicht erwartet
0/20CodeQL-Workflow
Verwendete Eingangsdaten
sourcefile_signals
lockfilespoetry.lock
manifestspyproject.toml
has_codeql_workflownein
has_security_policynein
has_dependabot_confignein
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Lockfiles für Abhängigkeiten. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
7.6/35Direkte Abhängigkeiten ohne bekannte Advisories — 1 betroffen: litellm 1.83.7 (critical 9.8)
6.6/25Indirekte Abhängigkeiten ohne bekannte Advisories — 4 betroffen: aiohttp 3.13.5 (high 7.5), click 8.1.8 (high 7.2), google-cloud-aiplatform 1.71.1 (high), +1 weitere
29.9/40Keine offenen Advisories — 2 Paket(e) mit Advisory seit über 90 Tagen unbehandelt; ältestes vor 156 Tagen veröffentlicht
Verwendete Eingangsdaten
sourceosv
advisories39
affected_packages5
assessed_packages114
unassessed_packages0
affected_by_severitycritical 1, high 3, moderate 1
direct_affected_packages1
Abgeglichen wurde die Laufzeit-Abhängigkeitshülle von pypi:bespokelabs-curator@0.1.29 — das, was die Installation des veröffentlichten Pakets nach sich zieht — mit 114 Paketen. Erreichbarkeit wird nicht analysiert.

AI Readiness

Wie gut ist das Repository dafür ausgestattet, mit KI-Coding-Agenten entwickelt und gepflegt zu werden? Ein unabhängiges, experimentelles Badge — Gewicht 0,0, es wird eigenständig ausgewiesen und verändert den Gesamt-Gesundheitswert nicht.

58Mittel · 0 % des Gesamtindex
Wie die Bewertung erfolgt
0/45Agentenanweisungen — keine CLAUDE.md / AGENTS.md / Editor-Regeln
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 99 von 100 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,99
agent_instruction_files
agent_instruction_max_bytes
Wie die Bewertung erfolgt
18/18Bootstrap mit einem Befehl — Makefile
22/22Automatisierte Tests
11/11Lint-/Format-Konfiguration
0/11Statische Typprüfung
10/10Reproduzierbare Umgebung — lockfile
10/10Belegte Agentenpraxis — 12 der letzten 100 Commits von Agenten verfasst oder ihnen zugeschrieben
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
0/10OpenSSF Scorecard: Pinned-Dependencies — keine Daten
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilespoetry.lock
has_dockerfilenein
typed_languagenein
bootstrap_filesMakefile
has_devcontainernein
has_linter_configja
typecheck_configs
agent_commit_share0,12
toolchain_manifests
dependency_bot_commit_share0
Wie die Bewertung erfolgt
0/45Typprüfbarer Code — Python ohne Typprüfungs-Konfiguration
55/55Handhabbare Dateigrößen — 0/175 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languagePython
largest_source_bytes35.987
source_files_sampled175
oversized_source_files0
Wie die Bewertung erfolgt
0/40API-Schema (OpenAPI/GraphQL/proto)
0/20MCP-Server
40/40Lauffähige Beispiele — examples
Verwendete Eingangsdaten
example_dirsexamples
has_mcp_signalnein
api_schema_files

Eckdaten

1.704GitHub-Sterne
22Mitwirkende
22Commits, letzte 12 Monate
4Tage seit letztem Push
26Releases
3Bus-Faktor
57offene Issues
PyPIPaket-Ökosysteme

Warnungen zur Datenerhebung

  • 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

Weitere Details

Stern- und Fork-Verlauf 0 ★ / 143 ⇿
0Sterne
143Forks
26Releases

Wann jeder Stern und Fork hinzugefügt wurde, von GitHub erfasst und nach Tagen gruppiert. Das kumulierte Wachstum steht direkt über den täglichen Zugängen, aus denen es besteht, sodass beide gegeneinander lesbar sind: stetiger organischer Zuwachs sieht ganz anders aus als ein abrupter, kurzlebiger Ausschlag. Wo dieser Unterschied messbar ist, wird er als Wachstumsauthentizität ausgewiesen.

0255075100125150141132024-112025-092026-07
Major 0Minor 0Patch 20

Jeder Punkt umfasst 2 Tage.

Direkte Abhängigkeiten 19
RegistryPaketVersionsvorgabeManifest
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
Alle Abhängigkeiten 248

Vollständig aufgelöster Abhängigkeitssatz aus dem GitHub-Abhängigkeitsgraphen: 22 direkte und 226 indirekte (transitive) Pakete. Die transitive Hülle ist vollständig, wenn das Repository eine Lockfile eincheckt.

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

Die Installation von pypi:bespokelabs-curator@0.1.29 zieht 114 Pakete nach sich, direkt und transitiv: 5 tragen bekannte Advisories, davon 1 direkte Abhängigkeiten.

PaketVersionBeziehungSchweregradAdvisoriesBehoben in
litellm1.83.7direktkritisch121.84.0
aiohttp3.13.5indirekthoch223.14.1
click8.1.8indirekthoch18.3.3
google-cloud-aiplatform1.71.1indirekthoch21.133.0
python-dotenv1.0.1indirektmittel21.2.2

Ein Advisory bedeutet, dass die im Abhängigkeitsgraphen erfasste Version in den betroffenen Bereich eines Advisories fällt. Erreichbarkeit wird nicht analysiert, und der Graph enthält Entwicklungs- und Test-Pins — ein Fund kann das Werkzeug betreffen und nicht die ausgelieferte Software.

JSON-Rohbericht maschinenlesbar
{
  "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"
}

Bewertungen sind Signale, keine Garantien. Sie spiegeln öffentlich sichtbare Praxis auf GitHub wider — kein Code-Audit und keine Sicherheitsgarantie.

Fehlende Daten werden ausgeschlossen und die Gewichte neu normiert, nie als null bewertet. Die Methodik ist versioniert und offen: Metriken v1.13.0, Schema v0.27.0 — vollständige Methodik · Metriken-Wiki.

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte StatistikenPyPI.