Публічний реєстр
Звіт про здоров'я програмного забезпеченнясхема 0.27.0 · метрики 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 зірки⑂ 143 форкиз жовт. 2024 р.Переглянути на GitHub ↗

bespokelabsai/curator має індекс здоров’я 68 зі 100, що відповідає смузі «Помірний». Найвищий показник — Engineering Quality (95/100), найнижчий — Security (10/100). Останнє оновлення було 4 дні тому. Більшість нещодавньої роботи виконують 3 учасники.

68
загалом / 100
Помірний

Індекс здоров'я програмного забезпечення

Метрики згруповано у зважені категорії на шкалі 1–100. Загальна оцінка починається як їхнє середнє; коли публічні дані активують Політику юрисдикцій високого ризику, рейтинг коригується й отримує верхню межу 49 («Під ризиком»). Готовність до ШІ не входить до індексу.

68
Відмінний85-100Зразковий; відповідає практично всім перевіреним критеріям
Добрий70-84Здоровий; незначні прогалини
Помірний50-69Прийнятний, але з помітними прогалинами; рекомендовано перевірку
У зоні ризику30-49Суттєві слабкі місця; впровадження потребує обережності
Критичний1-29Серйозні проблеми (покинутий, єдиний мейнтейнер, без базової гігієни)
ЖиттєздатністьСпільнота тавпровадженняСталість таврядуванняІнженернаякістьБезпекаГотовність доШІ

Профіль оцінок

Кожна вісь — окрема категорія. Форма важить більше, ніж середнє: здоровий об'єкт заповнює всю фігуру, тоді як профіль із піками та провалами означає, що сила в одному вимірі маскує ризик в іншому.

Власність

Bespoke LabsОрганізація
128 підписників17 публічних репозиторіївз квіт. 2024 р.

За цим репозиторієм стоїть організація — спільна, підзвітна опіка, здатна пережити будь-якого окремого мейнтейнера.

Пакетні екосистеми

РеєстрПакетВерсіяЗавантажень / місВерсіїОстання публікаціяТеги
PyPIbespokelabs-curator0.1.2925 0805713 днів томуaicuratorbespoke

Метрики за категоріями

Життєздатність

Чи живий проєкт — чи пишеться код і чи виходять релізи?

72Добрий · 22% загального індексу
Як обчислюється оцінка
36/36Свіжість push — останній push 4 дн. тому
6.2/36Ритм комітів — 9/52 тижнів із комітами
12.2/18Обсяг комітів — 22 комітів за останній рік
0/10OpenSSF Scorecard: Maintained — немає даних
Використані вхідні дані
commits_last_year22
human_commit_share1
days_since_last_push4
active_weeks_last_year9
Як обчислюється оцінка
27/27Випускає релізи — опубліковано 26 релізів
27/36Свіжість релізів — останній реліз 133 дн. тому
27/27Ритм релізів — реліз кожні ~42,4 дн.
0/10OpenSSF Scorecard: Signed-Releases — немає даних
Використані вхідні дані
releases_count26
latest_release_tagv0.1.27
releases_from_tagsні
days_since_latest_release133
mean_days_between_releases42,4

Спільнота та впровадження

Чи має проєкт користувачів, завантаження, увагу та влаштовані умови для контриб’юторів?

73Добрий · 18% загального індексу
Як обчислюється оцінка
52.4/60Зірки — 1 704 зірок
17.9/25Форки — 143 форків
5.6/15Спостерігачі — 11 спостерігачів
Використані вхідні дані
forks143
stars1 704
watchers11
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Як обчислюється оцінка
22.5/22.5README
22.5/22.5Ліцензія — визнана ліцензія (Apache-2.0)
18/18Настанови CONTRIBUTING
0/13.5Кодекс поведінки
0/7.2Шаблон issue
0/6.3Шаблон PR
Використані вхідні дані
has_readmeтак
has_licenseтак
has_contributingтак
has_issue_templateні
has_code_of_conductні
has_pull_request_templateні
Як обчислюється оцінка
58.7/80Щомісячні завантаження — 25 080 завантажень/місяць у pypi
0/20Залежні пакети в реєстрі — ця екосистема цього не повідомляє
Використані вхідні дані
packagesbespokelabs-curator
dependents
ecosystemspypi
total_downloads
monthly_downloads25 080
Виключено з оцінювання (немає даних або не застосовно): Залежні пакети в реєстрі. Залишкові ваги перенормовано.

Сталість та врядування

Чи переживе проєкт своїх людей — бас-фактор, реактивність, хто за ним стоїть і як супроводжуються пакети?

78Добрий · 24% загального індексу
Як обчислюється оцінка
36/54Бас-фактор — на 3 контриб’ютор(ів) припадає половина всіх комітів
17.2/22.5Розподіл комітів — головний контриб’ютор — автор 24% комітів
13.5/13.5Широта контриб’юторів — 22 контриб’юторів
0/10OpenSSF Scorecard: Contributors — немає даних
Використані вхідні дані
bus_factor3
contributors_sampled22
top_contributor_share0,235
Як обчислюється оцінка
36.9/46.8Вирішення issue — закрито 79% issue
33.3/38.3Прийняття PR — злито 387/444 вирішених PR
0/15OpenSSF Scorecard: Code-Review — немає даних
Використані вхідні дані
merged_prs387
open_issues57
closed_issues213
issue_closed_ratio0,789
closed_unmerged_prs57
Як обчислюється оцінка
30/30Підтримка власника — у власності організації
0/20Верифікований домен
15.2/25Охоплення власника — 128 підписників у bespokelabsai
13.7/25Послужний список — 17 публічних репозиторіїв, вік облікового запису ~2 р.
Використані вхідні дані
followers128
owner_typeOrganization
is_verified
owner_loginbespokelabsai
public_repos17
account_age_days825

Супровід пакетів

100Відмінний
Як обчислюється оцінка
25/25Опубліковано й доступно — 1 пакет(ів) у pypi
35/35Свіжість публікацій — остання публікація 13 дн. тому
20/20Історія версій — 57 опублікованих версій
20/20Не застарілий — активний, не deprecated і не yanked
Використані вхідні дані
packagesbespokelabs-curator
ecosystemspypi
any_deprecatedні
min_days_since_publish13

Інженерна якість

Чи наявні базові інженерні практики та документація?

95Відмінний · 20% загального індексу
Як обчислюється оцінка
24/24Процеси CI — 1 процес(ів) CI
24/24Наявні тести
16/16Конфігурація лінтера
9.6/9.6Pre-commit-хуки
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — немає даних
Використані вхідні дані
has_ciтак
has_testsтак
has_editorconfigні
has_linter_configтак
has_precommit_configтак

Документація

100Відмінний
Як обчислюється оцінка
30/30README
25/25Каталог документації
15/15Сайт документації / домашня сторінка — https://docs.bespokelabs.ai/bespoke-curator
10/10Опис репозиторію
10/10Теми — 11 тем
10/10Wiki
Використані вхідні дані
topicssynthetic-data, agents, llm, prompt, python, synthetic-dataset-generation, deep-learning, fine-tuning, instruction-tuning, machine-learning, natural-language-processing
has_wikiтак
homepagehttps://docs.bespokelabs.ai/bespoke-curator
has_readmeтак
has_docs_dirтак
has_descriptionтак

Безпека

Чи міцні видимі практики безпеки й ланцюга постачання, без непослабленої пов’язаності з юрисдикціями високого ризику?

10Критичний · 16% загального індексу

Стан безпеки

1Критичний
Як обчислюється оцінка
0/30Політика безпеки (SECURITY.md)
0/25Конфігурація Dependabot
0/25Файли фіксації залежностей — опублікована бібліотека — lockfile є справою застосунків, не очікується
0/20Процес CodeQL
Використані вхідні дані
sourcefile_signals
lockfilespoetry.lock
manifestspyproject.toml
has_codeql_workflowні
has_security_policyні
has_dependabot_configні
Виключено з оцінювання (немає даних або не застосовно): Файли фіксації залежностей. Залишкові ваги перенормовано.
Як обчислюється оцінка
7.6/35Прямі залежності без відомих сповіщень — уражено 1: litellm 1.83.7 (critical 9.8)
6.6/25Непрямі залежності без відомих сповіщень — уражено 4: aiohttp 3.13.5 (high 7.5), click 8.1.8 (high 7.2), google-cloud-aiplatform 1.71.1 (high), ще +1
29.9/40Немає задавнених сповіщень — 2 пакет(ів) зі сповіщеннями без реакції понад 90 дн.; найдавніше опубліковано 156 дн. тому
Використані вхідні дані
sourceosv
advisories39
affected_packages5
assessed_packages114
unassessed_packages0
affected_by_severitycritical 1, high 3, moderate 1
direct_affected_packages1
Звірено з runtime-замиканням залежностей pypi:bespokelabs-curator@0.1.29 — тим, що тягне за собою встановлення опублікованого пакета, — 114 пакетів. Досяжність не аналізується.

Готовність до ШІ

Наскільки репозиторій оснащений для розробки та супроводу за участі ШІ-агентів? Незалежний, експериментальний бейдж — вага 0.0, тож він подається окремо і не впливає на загальний індекс здоров'я.

58Помірний · 0% загального індексу
Як обчислюється оцінка
0/45Інструкції для агентів — немає CLAUDE.md / AGENTS.md / правил редактора
0/15Машиночитана документація (llms.txt)
40/40Читабельна історія комітів — намір зазначено у 99 з 100 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,99
agent_instruction_files
agent_instruction_max_bytes
Як обчислюється оцінка
18/18Розгортання однією командою — Makefile
22/22Автоматизовані тести
11/11Конфігурація лінтера / форматера
0/11Статична перевірка типів
10/10Відтворюване середовище — lockfile
10/10Підтверджена практика роботи з агентами — 12 з останніх 100 комітів створено агентом або з його зазначенням
0/8Автоматизоване супроводження — автоматичних оновлень залежностей не виявлено
0/10OpenSSF Scorecard: Pinned-Dependencies — немає даних
Використані вхідні дані
has_nixні
has_testsтак
lockfilespoetry.lock
has_dockerfileні
typed_languageні
bootstrap_filesMakefile
has_devcontainerні
has_linter_configтак
typecheck_configs
agent_commit_share0,12
toolchain_manifests
dependency_bot_commit_share0
Як обчислюється оцінка
0/45Типізований код — Python без конфігурації перевірки типів
55/55Керовані розміри файлів — 0/175 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languagePython
largest_source_bytes35 987
source_files_sampled175
oversized_source_files0
Як обчислюється оцінка
0/40Схема API (OpenAPI/GraphQL/proto)
0/20Сервер MCP
40/40Придатні до запуску приклади — examples
Використані вхідні дані
example_dirsexamples
has_mcp_signalні
api_schema_files

Ключові факти

1 704зірок GitHub
22контриб'юторів
22комітів за останні 12 місяців
4днів від останнього пушу
26релізів
3бас-фактор
57відкритих issue
PyPIпакетних екосистем

Попередження щодо збору даних

  • 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

Докладніше

Історія зірок і форків 0 ★ / 143 ⇿
0Зірки
143Форки
26Релізи

Коли додано кожну зірку й форк — зібрано з GitHub і згруповано за днями. Кумулятивне зростання розміщено просто над денними додаваннями, з яких воно складається, тож їх видно одне проти одного: рівномірне органічне накопичення виглядає зовсім інакше, ніж різкий короткочасний сплеск. Там, де цю різницю можна виміряти, її подано як автентичність росту.

0255075100125150141132024-112025-092026-07
Мажорні 0Мінорні 0Патчі 20

Кожна точка охоплює 2 днів.

Прямі залежності 19
РеєстрПакетОбмеження версіїМаніфест
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
Усі залежності 248

Повний розв'язаний набір залежностей із графа залежностей GitHub: 22 прямих і 226 непрямих (транзитивних) пакетів. Транзитивне замикання є повним, коли в репозиторії закомічено lockfile.

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

Встановлення pypi:bespokelabs-curator@0.1.29 тягне 114 пакетів, прямих і транзитивних: 5 мають відомі сповіщення, з них 1 — прямі залежності.

ПакетВерсіяЗв'язокКритичністьСповіщеньВиправлено в
litellm1.83.7прямакритична121.84.0
aiohttp3.13.5непрямависока223.14.1
click8.1.8непрямависока18.3.3
google-cloud-aiplatform1.71.1непрямависока21.133.0
python-dotenv1.0.1непрямапомірна21.2.2

Сповіщення означає, що версія, записана в графі залежностей, потрапляє в уражений діапазон. Досяжність не аналізується, а граф містить піниї розробки й тестування — знахідка може стосуватися інструментів, а не поставленого коду.

Звіт у форматі JSON машиночитний
{
  "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"
}

Оцінки — це сигнали, а не гарантії. Вони відображають публічно видимі практики на GitHub — це не аудит коду й не гарантія безпеки.

Відсутні дані виключаються, а ваги перенормовуються — нуль за відсутність ніколи не ставиться. Методологія версіонована й відкрита: метрики v1.13.0, схема v0.27.0 — повна методологія · вікі метрик.

Як окремий результат виглядає на тлі всього реєстру: сукупна статистикаPyPI.