Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 1.13.0 · 2026-07-31 04:51 UTC

wrmsr / om

My python monorepo.

PythonBSD-3-Clause★ 7 Sterne⑂ 0 Forksseit Apr. 2023Auf GitHub ansehen ↗

wrmsr/om erreicht einen Gesundheitsindex von 48 von 100 und liegt damit im Bereich Gefährdet. Am stärksten schneidet es bei AI Readiness (77/100) ab, am schwächsten bei Security (21/100). Zuletzt heute aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

48
gesamt / 100
Gefährdet

Software-Gesundheitsindex

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

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

Bewertungsprofil

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

Eigentümerschaft

wrmsrPersönliches Konto
92 Follower240 öffentliche Reposseit Jan. 2011

Dieses Repository gehört einem persönlichen Konto. Ein Projekt mit nur einem Eigentümer trägt ein höheres Kontinuitätsrisiko als ein organisationsgetragenes.

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlicht
PyPIomdev0.0.352.758585vor 0 Tagen
PyPIomllm0.0.35-9vor 0 Tagen
PyPIomcore0.0.358048vor 0 Tagen
PyPIomxtra0.0.35-69vor 0 Tagen
PyPIominfra0.0.352.516585vor 0 Tagen

Metriken nach Kategorie

Vitalität

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

60Mittel · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 0 Tagen
35.3/36Commit-Rhythmus — 51/52 Wochen mit Commits
18/18Commit-Volumen — 4.075 Commits im letzten Jahr
0/10OpenSSF Scorecard: Maintained — keine Daten
Verwendete Eingangsdaten
commits_last_year4.075
human_commit_share1
days_since_last_push0
active_weeks_last_year51
Wie die Bewertung erfolgt
0/27Liefert Releases aus — keine Releases veröffentlicht
0/36Release-Aktualität — keine Releases
0/27Release-Rhythmus — keine Releases
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count0

Community & Verbreitung

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

38Gefährdet · 18 % des Gesamtindex
Wie die Bewertung erfolgt
12.6/60Stars — 7 Stars
0/25Forks — 0 Forks
0/15Watcher — 1 Watcher
Verwendete Eingangsdaten
forks0
stars7
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (BSD-3-Clause)
0/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingnein
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templatenein
Wie die Bewertung erfolgt
50.5/80Downloads pro Monat — 6.078 Downloads/Monat über pypi
0/20Abhängige in der Registry — von diesem Ökosystem nicht ausgewiesen
Verwendete Eingangsdaten
packagesomdev, omllm, omcore, omxtra, ominfra
dependents
ecosystemspypi
total_downloads
monthly_downloads6.078
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Abhängige in der Registry. Die verbleibenden Gewichte wurden renormalisiert.

Nachhaltigkeit & Governance

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

52Mittel · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
0/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 100 % der Commits
1.4/13.5Breite der Beitragenden — 1 Beitragende
0/10OpenSSF Scorecard: Contributors — keine Daten
Verwendete Eingangsdaten
bus_factor1
contributors_sampled1
top_contributor_share1
Wie die Bewertung erfolgt
10/30Organisatorische Trägerschaft — persönliches (Nutzer-)Konto
0/20Verifizierte Domain — für Nutzerkonten nicht anwendbar
14.2/25Reichweite des Inhabers — 92 Follower von wrmsr
25/25Kontohistorie — 240 öffentliche Repos, Kontoalter ca. 15 Jahre
Verwendete Eingangsdaten
followers92
owner_typeUser
is_verified
owner_loginwrmsr
public_repos240
account_age_days5.678
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Verifizierte Domain. Die verbleibenden Gewichte wurden renormalisiert.

Paketpflege

100Exzellent
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 5 Paket(e) auf pypi
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 0 Tagen
20/20Versionshistorie — 585 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packagesomdev, omllm, omcore, omxtra, ominfra
ecosystemspypi
any_deprecatednein
min_days_since_publish0

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

61Mittel · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 1 Workflow(s)
24/24Tests vorhanden
0/16Linter-Konfiguration
0/9.6Pre-Commit-Hooks
6.4/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — keine Daten
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfigja
has_linter_confignein
has_precommit_confignein
Wie die Bewertung erfolgt
30/30README
0/25Dokumentationsverzeichnis
0/15Dokumentations-/Homepage-Site
10/10Repository-Beschreibung
0/10Topics
10/10Wiki
Verwendete Eingangsdaten
topics
has_wikija
homepage
has_readmeja
has_docs_dirnein
has_descriptionja

Sicherheit

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

21Kritisch · 16 % des Gesamtindex
Wie die Bewertung erfolgt
0/30Sicherheitsrichtlinie (SECURITY.md)
0/25Dependabot-Konfiguration
0/25Lockfiles für Abhängigkeiten — veröffentlichte Bibliothek — Lockfiles sind Sache der Anwendung, hier nicht erwartet
0/20CodeQL-Workflow
Verwendete Eingangsdaten
sourcefile_signals
lockfilesCargo.lock
manifestspyproject.toml, requirements-ci.txt, requirements-dev.txt, requirements-ext.txt, requirements-frz.txt, requirements.txt
has_codeql_workflownein
has_security_policynein
has_dependabot_confignein
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Lockfiles für Abhängigkeiten. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
35/35Direkte Abhängigkeiten ohne bekannte Advisories — keine direkte Abhängigkeit trägt ein bekanntes Advisory
0/25Indirekte Abhängigkeiten ohne bekannte Advisories — transitive Menge in diesem Bereich nicht von Entwicklungs- und Test-Abhängigkeiten trennbar
0/40Keine offenen Advisories — kein Advisory trägt ein Veröffentlichungsdatum
Verwendete Eingangsdaten
sourceosv
advisories9
affected_packages4
assessed_packages371
unassessed_packages69
affected_by_severityhigh 1, moderate 2, unknown 1
direct_affected_packages0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Indirekte Abhängigkeiten ohne bekannte Advisories, Keine offenen Advisories. Die verbleibenden Gewichte wurden renormalisiert. 371 aufgelöste Abhängigkeiten wurden mit OSV abgeglichen. 69 konnten nicht bewertet werden — keine aufgelöste Version, ein nicht unterstütztes Ökosystem oder außerhalb der ausgewiesenen Paketliste. Dieses Repository veröffentlicht kein Paket, das der Index auflöst; bewertet wurde daher der Abhängigkeitsgraph des Repositorys. Dieser Graph vermischt Entwicklungs- und Test-Pins mit ausgelieferten Abhängigkeiten, daher werden nur die deklarierten Laufzeit-Abhängigkeiten bewertet; transitive Befunde werden als Kontext ausgewiesen und fließen nicht in die Bewertung ein. Erreichbarkeit wird nicht analysiert.

AI Readiness

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

77Gut · 0 % des Gesamtindex
Wie die Bewertung erfolgt
45/45Agentenanweisungen — AGENTS.md
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 90 von 100 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,9
agent_instruction_filesAGENTS.md
agent_instruction_max_bytes3.068
Wie die Bewertung erfolgt
18/18Bootstrap mit einem Befehl — Makefile, omdev/pyproject/tests/skeleton/Makefile
22/22Automatisierte Tests
0/11Lint-/Format-Konfiguration
11/11Statische Typprüfung — omcore/py.typed, omdev/py.typed, ominfra/py.typed, omllm/py.typed, omxtra/py.typed, x/pipdeptree/py.typed
10/10Reproduzierbare Umgebung — Dockerfile, lockfile
0/10Belegte Agentenpraxis — keine von Agenten verfassten Commits unter den letzten 100
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
0/10OpenSSF Scorecard: Pinned-Dependencies — keine Daten
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilesCargo.lock
has_dockerfileja
typed_languagenein
bootstrap_filesMakefile, omdev/pyproject/tests/skeleton/Makefile
has_devcontainernein
has_linter_confignein
typecheck_configsomcore/py.typed, omdev/py.typed, ominfra/py.typed, omllm/py.typed, omxtra/py.typed, x/pipdeptree/py.typed
agent_commit_share0
toolchain_manifestsomdev/rs/_boilerplate/Cargo.toml, x/ommlds/nanochat/rustbpe/Cargo.toml
dependency_bot_commit_share0
Wie die Bewertung erfolgt
27/45Typprüfbarer Code — Python mit Typprüfungs-Konfiguration (omcore/py.typed, omdev/py.typed, ominfra/py.typed, omllm/py.typed, omxtra/py.typed, x/pipdeptree/py.typed)
54.3/55Handhabbare Dateigrößen — 61/4.878 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languagePython
largest_source_bytes1.397.928
source_files_sampled4.878
oversized_source_files61
Wie die Bewertung erfolgt
40/40API-Schema (OpenAPI/GraphQL/proto) — omxtra/specs/proto/tests/examples/addressbook.proto
0/20MCP-Server
40/40Lauffähige Beispiele — demos, examples, notebooks, samples
Verwendete Eingangsdaten
example_dirsdemos, examples, notebooks, samples
has_mcp_signalnein
api_schema_filesomxtra/specs/proto/tests/examples/addressbook.proto

Eckdaten

7GitHub-Sterne
1Mitwirkende
4.075Commits, letzte 12 Monate
0Tage seit letztem Push
0Releases
1Bus-Faktor
0offene Issues
PyPIPaket-Ökosysteme

Warnungen zur Datenerhebung

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • Could not fetch pypi package 'omdev.cexts._boilerplate' from its registry
  • Could not fetch pypi package 'omcore._check' from its registry
  • Could not fetch pypi package 'omxtra.collections.stl._stl' from its registry
  • deps.dev does not index pypi:omdev@0.0.35; advisories assessed against the repository dependency graph instead
  • OpenSSF Scorecard did not return a usable result (2026/07/31 04:51:10 Warning: PATs stored in env variables GITHUB_AUTH_TOKEN and GITHUB_TOKEN differ. Scorecard will use the former.); skipping Scorecard checks

Weitere Details

Direkte Abhängigkeiten 9
RegistryPaketVersionsvorgabeManifest
PyPIomcore== 0.0.36.pkg/omcore-cext/pyproject.toml
PyPIomdev== 0.0.36.pkg/omdev-cext/pyproject.toml
PyPIomdev== 0.0.36.pkg/omdev-cli/pyproject.toml
PyPIomdev== 0.0.36.pkg/omdev-rs/pyproject.toml
PyPIomcore== 0.0.36.pkg/omdev/pyproject.toml
PyPIomcore== 0.0.36.pkg/ominfra/pyproject.toml
PyPIomcore== 0.0.36.pkg/omllm/pyproject.toml
PyPIomxtra== 0.0.36.pkg/omxtra-cext/pyproject.toml
PyPIomcore== 0.0.36.pkg/omxtra/pyproject.toml
Alle Abhängigkeiten 440

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

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

Dieses Repository veröffentlicht kein vom Index auflösbares Paket, daher wurde sein eigener Abhängigkeitsgraph bewertet – 371 Pakete, darunter auch Entwicklungs- und Test-Pins, die nie ausgeliefert werden: 4 tragen bekannte Advisories, davon 0 direkte. 69 konnten nicht bewertet werden – keine aufgelöste Version, ein nicht unterstütztes Ökosystem, oder außerhalb der ausgewiesenen Paketliste.

PaketVersionBeziehungSchweregradAdvisoriesBehoben in
pyo30.27.2indirekthoch40.29.0
diskcache5.6.3indirektmittel2
pytest8.3.4indirektmittel29.0.3
crossbeam-epoch0.9.18indirektunbekannt10.9.20

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

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

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

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

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte StatistikenPyPI.