Öffentliches Register
Software-GesundheitsberichtSchema 0.12.0 · Metriken 1.13.0 · 2026-07-17 16:46 UTC

phenobarbital / ai-parrot

Parrot is a new library to work with chatbots and agents with a very simple API

PythonMIT★ 27 Sterne⑂ 10 Forksseit Aug. 2024Auf GitHub ansehen ↗

phenobarbital/ai-parrot erreicht einen Gesundheitsindex von 63 von 100 und liegt damit im Bereich Mittel. Am stärksten schneidet es bei Vitality (100/100) ab, am schwächsten bei Community & Adoption (41/100). Zuletzt heute aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

63
gesamt / 100
Mittel

Software-Gesundheitsindex

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

63
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

phenobarbitalPersönliches Konto
124 Follower77 öffentliche Reposseit Okt. 2009DEVEL

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.

Metriken nach Kategorie

Vitalität

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

100Exzellent · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 0 Tagen
36/36Commit-Rhythmus — 52/52 Wochen mit Commits
18/18Commit-Volumen — 8.451 Commits im letzten Jahr
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
Verwendete Eingangsdaten
commits_last_year8.451
human_commit_share
days_since_last_push0
active_weeks_last_year52

Release-Disziplin

100Exzellent
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 100 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 0 Tagen
27/27Release-Rhythmus — ein Release etwa alle 4,1 Tage
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count100
latest_release_tag0.25.20
releases_from_tagsnein
days_since_latest_release0
mean_days_between_releases4,1
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: Signed-Releases. Die verbleibenden Gewichte wurden renormalisiert.

Community & Verbreitung

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

41Gefährdet · 18 % des Gesamtindex
Wie die Bewertung erfolgt
23/60Stars — 27 Stars
8/25Forks — 10 Forks
2.7/15Watcher — 4 Watcher
Verwendete Eingangsdaten
forks10
stars27
watchers4
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (MIT)
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

Nachhaltigkeit & Governance

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

43Gefährdet · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
1.8/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 92 % der Commits
13.5/13.5Breite der Beitragenden — 11 Beitragende
10/10OpenSSF Scorecard: Contributors — project has 7 contributing companies or organizations
Verwendete Eingangsdaten
bus_factor1
contributors_sampled11
top_contributor_share0,922
Wie die Bewertung erfolgt
0/46.8Issue-Lösungsquote — 0 % der Issues geschlossen
33.2/38.3PR-Annahme — 887/1.021 entschiedene PRs gemergt
0/15OpenSSF Scorecard: Code-Review — Found 0/2 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs887
open_issues1
closed_issues0
issue_closed_ratio0
closed_unmerged_prs134
Wie die Bewertung erfolgt
10/30Organisatorische Trägerschaft — persönliches (Nutzer-)Konto
0/20Verifizierte Domain — für Nutzerkonten nicht anwendbar
15.1/25Reichweite des Inhabers — 124 Follower von phenobarbital
25/25Kontohistorie — 77 öffentliche Repos, Kontoalter ca. 16 Jahre
Verwendete Eingangsdaten
followers124
owner_typeUser
is_verified
owner_loginphenobarbital
public_repos77
account_age_days6.120
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Verifizierte Domain. Die verbleibenden Gewichte wurden renormalisiert.

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

74Gut · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 5 Workflow(s)
24/24Tests vorhanden
16/16Linter-Konfiguration — .flake8, .pylintrc, tox.ini
0/9.6Pre-Commit-Hooks
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — 0 out of 2 merged PRs checked by a CI test -- score normalized to 0
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfignein
has_linter_configja
has_precommit_confignein

Dokumentation

90Exzellent
Wie die Bewertung erfolgt
30/30README
25/25Dokumentationsverzeichnis
15/15Dokumentations-/Homepage-Site — https://phenobarbital.github.io/ai-parrot/
10/10Repository-Beschreibung
10/10Topics — 7 Topics
0/10Wiki
Verwendete Eingangsdaten
topicsartificial-intelligence, claude-ai, google-genai, groq-ai, openai, orchestration, xai-api
has_wikinein
homepagehttps://phenobarbital.github.io/ai-parrot/
has_readmeja
has_docs_dirja
has_descriptionja

Sicherheit

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

55Mittel · 16 % des Gesamtindex
Wie die Bewertung erfolgt
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
0/2.5CI-Tests — 0 out of 2 merged PRs checked by a CI test -- score normalized to 0
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/2 approved changesets -- score normalized to 0
2.5/2.5Contributors — project has 7 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Lizenz — license file detected
7.5/7.5Maintained — 30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — keine Daten
3.5/5SAST — SAST tool detected but not run on all commits
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — keine Daten
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 42 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate5,5
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): pinned_dependencies, signed_releases. Die verbleibenden Gewichte wurden renormalisiert.

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.

88Exzellent · 0 % des Gesamtindex
Wie die Bewertung erfolgt
45/45Agentenanweisungen — AGENTS.md, CLAUDE.md, docs/agent.md
0/15Maschinenlesbare Doku (llms.txt)
0/40Lesbare Commit-Historie — keine Daten
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share
agent_instruction_filesAGENTS.md, CLAUDE.md, docs/agent.md
agent_instruction_max_bytes13.619
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Lesbare Commit-Historie. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
18/18Bootstrap mit einem Befehl — Makefile
22/22Automatisierte Tests
11/11Lint-/Format-Konfiguration — .flake8, .pylintrc, tox.ini
11/11Statische Typprüfung — mypy.ini, packages/ai-parrot-loaders/src/parrot_loaders/py.typed, packages/ai-parrot-pipelines/src/parrot_pipelines/py.typed, packages/ai-parrot-tools/src/parrot_tools/py.typed, packages/ai-parrot/src/parrot/py.typed, packages/parrot-formdesigner/src/parrot_formdesigner/py.typed
10/10Reproduzierbare Umgebung — Dockerfile, lockfile
0/10Belegte Agentenpraxis — keine Daten
5/8Automatisierte Wartung — Abhängigkeits-Automatisierung konfiguriert, in den erfassten Commits nicht beobachtet
0/10OpenSSF Scorecard: Pinned-Dependencies — keine Daten
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilesCargo.lock, go.sum
has_dockerfileja
typed_languagenein
bootstrap_filesMakefile
has_devcontainernein
has_linter_configja
typecheck_configsmypy.ini, packages/ai-parrot-loaders/src/parrot_loaders/py.typed, packages/ai-parrot-pipelines/src/parrot_pipelines/py.typed, packages/ai-parrot-tools/src/parrot_tools/py.typed, packages/ai-parrot/src/parrot/py.typed, packages/parrot-formdesigner/src/parrot_formdesigner/py.typed
agent_commit_share
toolchain_manifests
dependency_bot_commit_share0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Belegte Agentenpraxis, OpenSSF Scorecard: Pinned-Dependencies. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
27/45Typprüfbarer Code — Python mit Typprüfungs-Konfiguration (mypy.ini, packages/ai-parrot-loaders/src/parrot_loaders/py.typed, packages/ai-parrot-pipelines/src/parrot_pipelines/py.typed, packages/ai-parrot-tools/src/parrot_tools/py.typed, packages/ai-parrot/src/parrot/py.typed, packages/parrot-formdesigner/src/parrot_formdesigner/py.typed)
54.3/55Handhabbare Dateigrößen — 50/3.942 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languagePython
largest_source_bytes1.030.855
source_files_sampled3.942
oversized_source_files50
Wie die Bewertung erfolgt
40/40API-Schema (OpenAPI/GraphQL/proto) — packages/ai-parrot-server/src/parrot/mcp/transports/mcp.proto, packages/ai-parrot/src/parrot/core/events/bus/ingress/proto/events.proto
20/20MCP-Server
40/40Lauffähige Beispiele — examples
Verwendete Eingangsdaten
example_dirsexamples
has_mcp_signalja
api_schema_filespackages/ai-parrot-server/src/parrot/mcp/transports/mcp.proto, packages/ai-parrot/src/parrot/core/events/bus/ingress/proto/events.proto

Eckdaten

27GitHub-Sterne
11Mitwirkende
8.451Commits, letzte 12 Monate
0Tage seit letztem Push
100Releases
1Bus-Faktor
1offene Issues
PyPIPaket-Ökosysteme

Warnungen zur Datenerhebung

  • Could not fetch pypi package 'ai-parrot-workspace' from its registry

Weitere Details

OpenSSF Scorecard 5.5 / 10
5.5Gesamtwert

Unabhängige, werkzeugneutrale Sicherheitsbewertung durch das quelloffene OpenSSF Scorecard. Jede Prüfung honoriert eine Sicherheits-Praxis, nicht das Werkzeug eines bestimmten Anbieters. Prüfungen, die Scorecard nicht ermitteln konnte, sind mit k. A. markiert und vom Sicherheitswert ausgeschlossen (nie als null gezählt).Scorecard v5.5.0 · 2026-07-17 16:46 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
0CI-Tests0 out of 2 merged PRs checked by a CI test -- score normalized to 0
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/2 approved changesets -- score normalized to 0
10Contributorsproject has 7 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
k. A.Pinned-Dependenciesinternal error: internal error: invalid Dockerfile
7SASTSAST tool detected but not run on all commits
10Security-Policysecurity policy file detected
k. A.Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities42 existing vulnerabilities detected
Direkte Abhängigkeiten 9
RegistryPaketVersionsvorgabeManifest
PyPIai-parrotpyproject.toml
PyPIai-parrot-toolspyproject.toml
PyPIai-parrot-loaderspyproject.toml
PyPIai-parrot-embeddingspyproject.toml
PyPIai-parrot-visualizationspyproject.toml
PyPIai-parrot-pipelinespyproject.toml
PyPIai-parrot-integrationspyproject.toml
PyPIai-parrot-serverpyproject.toml
PyPIai-parrot-advisorspyproject.toml
Alle Abhängigkeiten 349

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

RegistryPaketVersionBeziehung
PyPIai-parrotdirekt
crates.ioequivalent1.0.2indirekt
crates.iohashbrown0.16.0indirekt
crates.ioheck0.5.0indirekt
crates.ioindexmap2.12.0indirekt
crates.ioitoa1.0.15indirekt
crates.iolibc0.2.177indirekt
crates.iomemchr2.7.6indirekt
crates.ioonce_cell1.21.3indirekt
crates.ioportable-atomic1.11.1indirekt
crates.ioproc-macro21.0.103indirekt
crates.iopyo30.29.0indirekt
crates.iopyo3-build-config0.29.0indirekt
crates.iopyo3-ffi0.29.0indirekt
crates.iopyo3-macros0.29.0indirekt
crates.iopyo3-macros-backend0.29.0indirekt
crates.ioquote1.0.41indirekt
crates.ioryu1.0.20indirekt
crates.ioserde1.0.228indirekt
crates.ioserde_core1.0.228indirekt
crates.ioserde_derive1.0.228indirekt
crates.ioserde_json1.0.145indirekt
crates.ioserde_yaml0.9.34+deprecatedindirekt
crates.iosyn2.0.108indirekt
crates.iotarget-lexicon0.13.4indirekt
crates.iounicode-ident1.0.20indirekt
crates.iounsafe-libyaml0.2.11indirekt
Gofilippo.io/edwards25519v1.1.1indirekt
Gogithub.com/beeper/argo-gov1.1.2indirekt
Gogithub.com/cespare/xxhash/v2v2.1.2indirekt
Gogithub.com/coder/websocketv1.8.14indirekt
Gogithub.com/dgryski/go-rendezvousv0.0.0-20200823014737-9f7001d12a5findirekt
Gogithub.com/elliotchance/orderedmap/v3v3.1.0indirekt
Gogithub.com/go-redis/redis/v8v8.11.5indirekt
Gogithub.com/google/uuidv1.6.0indirekt
Gogithub.com/gorilla/muxv1.8.1indirekt
Gogithub.com/gorilla/websocketv1.5.1indirekt
Gogithub.com/mattn/go-colorablev0.1.14indirekt
Gogithub.com/mattn/go-isattyv0.0.20indirekt
Gogithub.com/mattn/go-sqlite3v1.14.33indirekt
Gogithub.com/mdp/qrterminal/v3v3.2.0indirekt
Gogithub.com/petermattis/goidv0.0.0-20260113132338-7c7de50cc741indirekt
Gogithub.com/rs/zerologv1.34.0indirekt
Gogithub.com/skip2/go-qrcodev0.0.0-20200617195104-da1b6568686eindirekt
Gogithub.com/vektah/gqlparser/v2v2.5.27indirekt
Gogo.mau.fi/libsignalv0.2.1indirekt
Gogo.mau.fi/utilv0.9.5indirekt
Gogo.mau.fi/whatsmeowv0.0.0-20260211193157-7b33f6289f98indirekt
Gogolang.org/x/cryptov0.52.0indirekt
Gogolang.org/x/expv0.0.0-20260112195511-716be5621a96indirekt
Gogolang.org/x/netv0.55.0indirekt
Gogolang.org/x/sysv0.45.0indirekt
Gogolang.org/x/termv0.43.0indirekt
Gogolang.org/x/textv0.37.0indirekt
Gogoogle.golang.org/protobufv1.36.11indirekt
Gorsc.io/qrv0.2.0indirekt
PyPIaccelerateindirekt
PyPIaioboto3indirekt
PyPIaiofilesindirekt
PyPIaiogoogleindirekt
PyPIaiogoogle5.17.0indirekt
PyPIaiogramindirekt
PyPIaiohttpindirekt
PyPIaiohttp-corsindirekt
PyPIaiohttp-sse-client0.2.1indirekt
PyPIaiohttp-swagger30.10.0indirekt
PyPIaioimaplibindirekt
PyPIaioquic1.3.0indirekt
PyPIaiosqliteindirekt
PyPIaiounittest1.4.2indirekt
PyPIalbumentations2.0.6indirekt
PyPIalpaca-pyindirekt
PyPIaltairindirekt
PyPIanthropicindirekt
PyPIapscheduler3.11.2indirekt
PyPIarxivindirekt
PyPIasync-notifyindirekt
PyPIasyncdbindirekt
PyPIautovizindirekt
PyPIautoviz0.1.905indirekt
PyPIav16.1.0indirekt
PyPIazure-identityindirekt
PyPIazure-teambotsindirekt
PyPIbackoff2.2.1indirekt
PyPIbeautifulsoup4indirekt
PyPIbitsandbytes0.49.2indirekt
PyPIblack26.3.1indirekt
PyPIbm25s0.2.14indirekt
PyPIboto3indirekt
PyPIbranca0.8.2indirekt
PyPIbrotli1.2.0indirekt
PyPIbuild1.0.3indirekt
PyPIcel-pythonindirekt
PyPIchromadb0.6.3indirekt
PyPIclaude-agent-sdkindirekt
PyPIclickindirekt
PyPIcoverage7.2.7indirekt
PyPIcython3.0.11indirekt
PyPIdatasetsindirekt
PyPIddgsindirekt
PyPIdecoratorindirekt
PyPIdefillama-sdkindirekt
PyPIdockerindirekt
PyPIdocker7.1.0indirekt
PyPIdoclingindirekt
PyPIduckduckgo-search8.1.1indirekt
PyPIeasyocr1.7.2indirekt
PyPIebooklibindirekt
PyPIeinopsindirekt
PyPIexif1.6.1indirekt
PyPIexifread3.5.1indirekt
PyPIfaiss-cpuindirekt
PyPIfeedparserindirekt
PyPIffmpeg1.4indirekt
PyPIfiletype1.2.0indirekt
PyPIflit3.9.0indirekt
PyPIflowtaskindirekt
PyPIfoliumindirekt
PyPIfpdf1.7.2indirekt
PyPIgitpythonindirekt
PyPIgmqttindirekt
PyPIgoogle-api-python-clientindirekt
PyPIgoogle-cloud-aiplatformindirekt
PyPIgoogle-cloud-bigqueryindirekt
PyPIgoogle-cloud-texttospeech2.27.0indirekt
PyPIgoogle-genaiindirekt
PyPIgoogle-search-results2.4.2indirekt
PyPIgroq0.33.0indirekt
PyPIgrpcioindirekt
PyPIgrpcio-toolsindirekt
PyPIgunicornindirekt
PyPIhtml2textindirekt
PyPIhtml2text2025.4.15indirekt
PyPIhttpx-sse0.4.1indirekt
PyPIhypothesis6.111.0indirekt
PyPIimagehash4.3.1indirekt
PyPIipython8.32.0indirekt
PyPIipywidgets8.1.0indirekt
PyPIjinja2indirekt
PyPIjiraindirekt
PyPIjira3.10.5indirekt
PyPIjq1.7.0indirekt
PyPIjsonpath-ngindirekt
PyPIjsonpointerindirekt
PyPIjsonschemaindirekt
PyPIkubernetes-asyncioindirekt
PyPIlint1.2.1indirekt
PyPIlivekitindirekt
PyPIlivekit-apiindirekt
PyPIlxmlindirekt
PyPImammothindirekt
PyPImarkdownindirekt
PyPImarkdown2indirekt
PyPImarkdown22.5.4indirekt
PyPImarkdownifyindirekt
PyPImarkitdownindirekt
PyPImatplotlibindirekt
PyPImaturinindirekt
PyPImaturin1.9.6indirekt
PyPImautrixindirekt
PyPImcp1.23.0indirekt
PyPImediawikiapiindirekt
PyPImediawikiapi1.2indirekt
PyPImicrosoft-agents-authentication-msalindirekt
PyPImicrosoft-agents-hosting-aiohttpindirekt
PyPImicrosoft-kiota-authentication-azureindirekt
PyPImilvus-liteindirekt
PyPImkdocsindirekt
PyPImkdocs-glightboxindirekt
PyPImkdocs-materialindirekt
PyPImkdocstringsindirekt
PyPImoviepy2.2.1indirekt
PyPImsgraph-sdkindirekt
PyPImypy1.7.1indirekt
PyPInavconfigindirekt
PyPInavigator-apiindirekt
PyPInavigator-authindirekt
PyPInavigator-sessionindirekt
PyPInetworkxindirekt
PyPInh3indirekt
PyPInumexpr2.10.2indirekt
PyPInumpyindirekt
PyPInvidia-cudnn-cu12indirekt
PyPIodfpyindirekt
PyPIonnxruntimeindirekt
PyPIopenaiindirekt
PyPIopenai2.41.0indirekt
PyPIopenapi-schema-validator0.6.3indirekt
PyPIopenapi-spec-validatorindirekt
PyPIopencv-python4.10.0.84indirekt
PyPIopencv-python-headlessindirekt
PyPIopenlitindirekt
PyPIopenpyxlindirekt
PyPIopensearch-py3.1.0indirekt
PyPIopentelemetry-apiindirekt
PyPIopentelemetry-exporter-otlp-proto-grpcindirekt
PyPIopentelemetry-exporter-otlp-proto-httpindirekt
PyPIopentelemetry-sdkindirekt
PyPIorjsonindirekt
PyPIpaddleocr3.2.0indirekt
PyPIpandasindirekt
PyPIpandas-datareaderindirekt
PyPIpandas-ta-classicindirekt
PyPIpanelindirekt
PyPIpathspecindirekt
PyPIpdf4llm0.0.27indirekt
PyPIpeftindirekt
PyPIpgvector0.4.1indirekt
PyPIpillowindirekt
PyPIpillow-avif-plugin1.5.2indirekt
PyPIpillow-heif0.22.0indirekt
PyPIplaywrightindirekt
PyPIplaywright1.52.0indirekt
PyPIplotlyindirekt
PyPIpranceindirekt
PyPIprawindirekt
PyPIprometheus-clientindirekt
PyPIprompt-toolkitindirekt
PyPIprophet1.2.1indirekt
PyPIpsutilindirekt
PyPIpsycopg-binaryindirekt
PyPIpsycopg-binary3.2.6indirekt
PyPIpulumiindirekt
PyPIpycountryindirekt
PyPIpydanticindirekt
PyPIpydantic2.12.5indirekt
PyPIpydubindirekt
PyPIpydub0.25.1indirekt
PyPIpygithubindirekt
PyPIpyheif0.8.0indirekt
PyPIpyjwtindirekt
PyPIpylint3.2.6indirekt
PyPIpylsqpack0.3.23indirekt
PyPIpymdown-extensionsindirekt
PyPIpymilvus2.4.8indirekt
PyPIpymupdf1.27.1indirekt
PyPIpymupdf4llm0.0.27indirekt
PyPIpyowmindirekt
PyPIpyowm3.3.0indirekt
PyPIpypdfindirekt
PyPIpyperf2.6.2indirekt
PyPIpytector0.2.0indirekt
PyPIpytesseractindirekt
PyPIpytestindirekt
PyPIpytest-aiohttpindirekt
PyPIpytest-assume2.4.3indirekt
PyPIpytest-asyncioindirekt
PyPIpytest-asyncio1.2.0indirekt
PyPIpytest-benchmarkindirekt
PyPIpytest-cov4.0.0indirekt
PyPIpytest-cython0.3.1indirekt
PyPIpytest-mock3.15.1indirekt
PyPIpytest-xdist3.3.1indirekt
PyPIpytest-xdist3.5.0indirekt
PyPIpython-arango-async1.2.0indirekt
PyPIpython-datamodelindirekt
PyPIpython-docx1.1.2indirekt
PyPIpython-frontmatterindirekt
PyPIpython-olmindirekt
PyPIpython-pptx1.0.2indirekt
PyPIpython-statemachine2.5.0indirekt
PyPIpython-xmp-toolkit2.1.0indirekt
PyPIpytorch-lightning2.6.5indirekt
PyPIpytorch-metric-learning2.9.0indirekt
PyPIpytube15.0.0indirekt
PyPIpywaindirekt
PyPIpyyamlindirekt
PyPIquerysourceindirekt
PyPIquestionaryindirekt
PyPIrank-bm250.2.2indirekt
PyPIrapidfuzzindirekt
PyPIredisindirekt
PyPIreportlabindirekt
PyPIrequestsindirekt
PyPIrequests-oauthlib2.0.0indirekt
PyPIresemblyzer0.1.4indirekt
PyPIrichindirekt
PyPIrq2.6.0indirekt
PyPIruffindirekt
PyPIrustworkxindirekt
PyPIsafetensorsindirekt
PyPIsdist0.0.0indirekt
PyPIseabornindirekt
PyPIseleniumindirekt
PyPIselenium4.35.0indirekt
PyPIsemantic-text-splitterindirekt
PyPIsentence-transformersindirekt
PyPIsentencepiece0.2.1indirekt
PyPIsetuptoolsindirekt
PyPIsimsimdindirekt
PyPIslack-boltindirekt
PyPIslack-sdkindirekt
PyPIspacy3.8.11indirekt
PyPIsphinx6.1.3indirekt
PyPIsqlglotindirekt
PyPIsse-starlette3.0.2indirekt
PyPIstackapi0.3.1indirekt
PyPIstreamlitindirekt
PyPIsweetviz2.1.4indirekt
PyPIta-libindirekt
PyPIta-lib0.6.8indirekt
PyPItabulateindirekt
PyPItabulate0.9.0indirekt
PyPItensorflowindirekt
PyPItf-kerasindirekt
PyPItiktokenindirekt
PyPItiktoken0.9.0indirekt
PyPItimm1.0.15indirekt
PyPItokenizersindirekt
PyPItorchindirekt
PyPItorch2.11.0indirekt
PyPItorch-audiomentations0.12.0indirekt
PyPItorch-pitch-shift1.2.5indirekt
PyPItorchaudioindirekt
PyPItorchmetrics1.8.2indirekt
PyPItorchvisionindirekt
PyPItox4.34.1indirekt
PyPItraceloop-sdkindirekt
PyPItrafilaturaindirekt
PyPItransformersindirekt
PyPItree-sitterindirekt
PyPItree-sitter-languagesindirekt
PyPItwine5.1.1indirekt
PyPItyping-extensionsindirekt
PyPIuformindirekt
PyPIultralytics8.4.14indirekt
PyPIundetected-chromedriverindirekt
PyPIundetected-chromedriver3.5.5indirekt
PyPIurllib32.7.0indirekt
PyPIwatchdogindirekt
PyPIweasyprintindirekt
PyPIweasyprint69.0indirekt
PyPIwebdriver-managerindirekt
PyPIwebdriver-manager4.0.2indirekt
PyPIwheelindirekt
PyPIwhisperx3.8.5indirekt
PyPIwikipediaindirekt
PyPIwikipedia1.4.0indirekt
PyPIxai-sdkindirekt
PyPIxformersindirekt
PyPIxhtml2pdfindirekt
PyPIxmltodictindirekt
PyPIyfinanceindirekt
PyPIyfinance0.2.54indirekt
PyPIyoutube-search2.1.2indirekt
PyPIyoutube-transcript-api1.0.3indirekt
PyPIyt-dlpindirekt
PyPIzai-sdkindirekt
PyPIzeep4.3.3indirekt
JSON-Rohbericht maschinenlesbar
{
  "data": {
    "repo": {
      "topics": [
        "artificial-intelligence",
        "claude-ai",
        "google-genai",
        "groq-ai",
        "openai",
        "orchestration",
        "xai-api"
      ],
      "is_fork": false,
      "size_kb": 269291,
      "has_wiki": false,
      "homepage": "https://phenobarbital.github.io/ai-parrot/",
      "languages": {
        "Go": 16539,
        "CSS": 18629,
        "HTML": 1658734,
        "Rust": 7136,
        "Jinja": 8444,
        "Shell": 16733,
        "Cython": 7056,
        "Python": 37573458,
        "Smarty": 645,
        "PLpgSQL": 56998,
        "Makefile": 31134,
        "Dockerfile": 1300,
        "JavaScript": 25054,
        "Go Template": 636
      },
      "pushed_at": "2026-07-17T14:40:07Z",
      "created_at": "2024-08-12T23:05:33Z",
      "owner_type": "User",
      "updated_at": "2026-07-17T14:16:40Z",
      "description": "Parrot is a new library to work with chatbots and agents with a very simple API",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "primary_language": "Python",
      "significant_languages": [
        "Python"
      ]
    },
    "owner": {
      "blog": "http://about.me/phenobarbital",
      "name": "phenobarbital",
      "type": "User",
      "login": "phenobarbital",
      "company": "DEVEL",
      "location": "Fuensalida, Toledo, Spain",
      "followers": 124,
      "avatar_url": "https://avatars.githubusercontent.com/u/139613?v=4",
      "created_at": "2009-10-14T09:11:39Z",
      "is_verified": null,
      "public_repos": 77,
      "account_age_days": 6120
    },
    "activity": {
      "releases_count": 100,
      "commits_last_year": 8451,
      "latest_release_at": "2026-07-17T14:15:19Z",
      "latest_release_tag": "0.25.20",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 52,
      "days_since_latest_release": 0,
      "mean_days_between_releases": 4.1
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 57,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": []
    },
    "popularity": {
      "forks": 10,
      "stars": 27,
      "watchers": 4,
      "open_issues_and_prs": 11
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": true,
      "bootstrap_files": [
        "Makefile"
      ],
      "api_schema_files": [
        "packages/ai-parrot-server/src/parrot/mcp/transports/mcp.proto",
        "packages/ai-parrot/src/parrot/core/events/bus/ingress/proto/events.proto"
      ],
      "has_devcontainer": false,
      "typecheck_configs": [
        "mypy.ini",
        "packages/ai-parrot-loaders/src/parrot_loaders/py.typed",
        "packages/ai-parrot-pipelines/src/parrot_pipelines/py.typed",
        "packages/ai-parrot-tools/src/parrot_tools/py.typed",
        "packages/ai-parrot/src/parrot/py.typed",
        "packages/parrot-formdesigner/src/parrot_formdesigner/py.typed"
      ],
      "largest_source_bytes": 1030855,
      "source_files_sampled": 3942,
      "oversized_source_files": 50,
      "agent_instruction_files": [
        "AGENTS.md",
        "CLAUDE.md",
        "docs/agent.md"
      ],
      "agent_instruction_max_bytes": 13619
    },
    "dependencies": {
      "manifests": [
        "benchmarks/requirements-benchmark.txt",
        "pyproject.toml",
        "requirements-docs.txt",
        "requirements/requirements-dev.txt"
      ],
      "ecosystems": [
        "pypi"
      ],
      "dependencies": [
        {
          "name": "ai-parrot",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "ai-parrot-tools",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "ai-parrot-loaders",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "ai-parrot-embeddings",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "ai-parrot-visualizations",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "ai-parrot-pipelines",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "ai-parrot-integrations",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "ai-parrot-server",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "ai-parrot-advisors",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "ai-parrot",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "equivalent",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "crates"
          },
          {
            "name": "hashbrown",
            "direct": false,
            "version": "0.16.0",
            "ecosystem": "crates"
          },
          {
            "name": "heck",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "indexmap",
            "direct": false,
            "version": "2.12.0",
            "ecosystem": "crates"
          },
          {
            "name": "itoa",
            "direct": false,
            "version": "1.0.15",
            "ecosystem": "crates"
          },
          {
            "name": "libc",
            "direct": false,
            "version": "0.2.177",
            "ecosystem": "crates"
          },
          {
            "name": "memchr",
            "direct": false,
            "version": "2.7.6",
            "ecosystem": "crates"
          },
          {
            "name": "once_cell",
            "direct": false,
            "version": "1.21.3",
            "ecosystem": "crates"
          },
          {
            "name": "portable-atomic",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro2",
            "direct": false,
            "version": "1.0.103",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-build-config",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-ffi",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-macros",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-macros-backend",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "crates"
          },
          {
            "name": "quote",
            "direct": false,
            "version": "1.0.41",
            "ecosystem": "crates"
          },
          {
            "name": "ryu",
            "direct": false,
            "version": "1.0.20",
            "ecosystem": "crates"
          },
          {
            "name": "serde",
            "direct": false,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "serde_core",
            "direct": false,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "serde_derive",
            "direct": false,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "serde_json",
            "direct": false,
            "version": "1.0.145",
            "ecosystem": "crates"
          },
          {
            "name": "serde_yaml",
            "direct": false,
            "version": "0.9.34+deprecated",
            "ecosystem": "crates"
          },
          {
            "name": "syn",
            "direct": false,
            "version": "2.0.108",
            "ecosystem": "crates"
          },
          {
            "name": "target-lexicon",
            "direct": false,
            "version": "0.13.4",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-ident",
            "direct": false,
            "version": "1.0.20",
            "ecosystem": "crates"
          },
          {
            "name": "unsafe-libyaml",
            "direct": false,
            "version": "0.2.11",
            "ecosystem": "crates"
          },
          {
            "name": "filippo.io/edwards25519",
            "direct": false,
            "version": "v1.1.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/beeper/argo-go",
            "direct": false,
            "version": "v1.1.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/cespare/xxhash/v2",
            "direct": false,
            "version": "v2.1.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/coder/websocket",
            "direct": false,
            "version": "v1.8.14",
            "ecosystem": "go"
          },
          {
            "name": "github.com/dgryski/go-rendezvous",
            "direct": false,
            "version": "v0.0.0-20200823014737-9f7001d12a5f",
            "ecosystem": "go"
          },
          {
            "name": "github.com/elliotchance/orderedmap/v3",
            "direct": false,
            "version": "v3.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-redis/redis/v8",
            "direct": false,
            "version": "v8.11.5",
            "ecosystem": "go"
          },
          {
            "name": "github.com/google/uuid",
            "direct": false,
            "version": "v1.6.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gorilla/mux",
            "direct": false,
            "version": "v1.8.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gorilla/websocket",
            "direct": false,
            "version": "v1.5.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mattn/go-colorable",
            "direct": false,
            "version": "v0.1.14",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mattn/go-isatty",
            "direct": false,
            "version": "v0.0.20",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mattn/go-sqlite3",
            "direct": false,
            "version": "v1.14.33",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mdp/qrterminal/v3",
            "direct": false,
            "version": "v3.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/petermattis/goid",
            "direct": false,
            "version": "v0.0.0-20260113132338-7c7de50cc741",
            "ecosystem": "go"
          },
          {
            "name": "github.com/rs/zerolog",
            "direct": false,
            "version": "v1.34.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/skip2/go-qrcode",
            "direct": false,
            "version": "v0.0.0-20200617195104-da1b6568686e",
            "ecosystem": "go"
          },
          {
            "name": "github.com/vektah/gqlparser/v2",
            "direct": false,
            "version": "v2.5.27",
            "ecosystem": "go"
          },
          {
            "name": "go.mau.fi/libsignal",
            "direct": false,
            "version": "v0.2.1",
            "ecosystem": "go"
          },
          {
            "name": "go.mau.fi/util",
            "direct": false,
            "version": "v0.9.5",
            "ecosystem": "go"
          },
          {
            "name": "go.mau.fi/whatsmeow",
            "direct": false,
            "version": "v0.0.0-20260211193157-7b33f6289f98",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/crypto",
            "direct": false,
            "version": "v0.52.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/exp",
            "direct": false,
            "version": "v0.0.0-20260112195511-716be5621a96",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/net",
            "direct": false,
            "version": "v0.55.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/sys",
            "direct": false,
            "version": "v0.45.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/term",
            "direct": false,
            "version": "v0.43.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/text",
            "direct": false,
            "version": "v0.37.0",
            "ecosystem": "go"
          },
          {
            "name": "google.golang.org/protobuf",
            "direct": false,
            "version": "v1.36.11",
            "ecosystem": "go"
          },
          {
            "name": "rsc.io/qr",
            "direct": false,
            "version": "v0.2.0",
            "ecosystem": "go"
          },
          {
            "name": "accelerate",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "aioboto3",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "aiofiles",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "aiogoogle",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "aiogoogle",
            "direct": false,
            "version": "5.17.0",
            "ecosystem": "pypi"
          },
          {
            "name": "aiogram",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "aiohttp",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "aiohttp-cors",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "aiohttp-sse-client",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "aiohttp-swagger3",
            "direct": false,
            "version": "0.10.0",
            "ecosystem": "pypi"
          },
          {
            "name": "aioimaplib",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "aioquic",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "aiosqlite",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "aiounittest",
            "direct": false,
            "version": "1.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "albumentations",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "pypi"
          },
          {
            "name": "alpaca-py",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "altair",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "anthropic",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "apscheduler",
            "direct": false,
            "version": "3.11.2",
            "ecosystem": "pypi"
          },
          {
            "name": "arxiv",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "async-notify",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "asyncdb",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "autoviz",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "autoviz",
            "direct": false,
            "version": "0.1.905",
            "ecosystem": "pypi"
          },
          {
            "name": "av",
            "direct": false,
            "version": "16.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "azure-identity",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "azure-teambots",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "backoff",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "beautifulsoup4",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "bitsandbytes",
            "direct": false,
            "version": "0.49.2",
            "ecosystem": "pypi"
          },
          {
            "name": "black",
            "direct": false,
            "version": "26.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "bm25s",
            "direct": false,
            "version": "0.2.14",
            "ecosystem": "pypi"
          },
          {
            "name": "boto3",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "branca",
            "direct": false,
            "version": "0.8.2",
            "ecosystem": "pypi"
          },
          {
            "name": "brotli",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "build",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "cel-python",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "chromadb",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "claude-agent-sdk",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "click",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "coverage",
            "direct": false,
            "version": "7.2.7",
            "ecosystem": "pypi"
          },
          {
            "name": "cython",
            "direct": false,
            "version": "3.0.11",
            "ecosystem": "pypi"
          },
          {
            "name": "datasets",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "ddgs",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "decorator",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "defillama-sdk",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "docker",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "docker",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "docling",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "duckduckgo-search",
            "direct": false,
            "version": "8.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "easyocr",
            "direct": false,
            "version": "1.7.2",
            "ecosystem": "pypi"
          },
          {
            "name": "ebooklib",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "einops",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "exif",
            "direct": false,
            "version": "1.6.1",
            "ecosystem": "pypi"
          },
          {
            "name": "exifread",
            "direct": false,
            "version": "3.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "faiss-cpu",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "feedparser",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "ffmpeg",
            "direct": false,
            "version": "1.4",
            "ecosystem": "pypi"
          },
          {
            "name": "filetype",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "flit",
            "direct": false,
            "version": "3.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "flowtask",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "folium",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "fpdf",
            "direct": false,
            "version": "1.7.2",
            "ecosystem": "pypi"
          },
          {
            "name": "gitpython",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "gmqtt",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "google-api-python-client",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "google-cloud-aiplatform",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "google-cloud-bigquery",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "google-cloud-texttospeech",
            "direct": false,
            "version": "2.27.0",
            "ecosystem": "pypi"
          },
          {
            "name": "google-genai",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "google-search-results",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "groq",
            "direct": false,
            "version": "0.33.0",
            "ecosystem": "pypi"
          },
          {
            "name": "grpcio",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "grpcio-tools",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "gunicorn",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "html2text",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "html2text",
            "direct": false,
            "version": "2025.4.15",
            "ecosystem": "pypi"
          },
          {
            "name": "httpx-sse",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "hypothesis",
            "direct": false,
            "version": "6.111.0",
            "ecosystem": "pypi"
          },
          {
            "name": "imagehash",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "ipython",
            "direct": false,
            "version": "8.32.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ipywidgets",
            "direct": false,
            "version": "8.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jinja2",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "jira",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "jira",
            "direct": false,
            "version": "3.10.5",
            "ecosystem": "pypi"
          },
          {
            "name": "jq",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonpath-ng",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "jsonpointer",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "kubernetes-asyncio",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "lint",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "livekit",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "livekit-api",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "lxml",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mammoth",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "markdown",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "markdown2",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "markdown2",
            "direct": false,
            "version": "2.5.4",
            "ecosystem": "pypi"
          },
          {
            "name": "markdownify",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "markitdown",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "matplotlib",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "maturin",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "maturin",
            "direct": false,
            "version": "1.9.6",
            "ecosystem": "pypi"
          },
          {
            "name": "mautrix",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mcp",
            "direct": false,
            "version": "1.23.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mediawikiapi",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mediawikiapi",
            "direct": false,
            "version": "1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "microsoft-agents-authentication-msal",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "microsoft-agents-hosting-aiohttp",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "microsoft-kiota-authentication-azure",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "milvus-lite",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mkdocs",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mkdocs-glightbox",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mkdocs-material",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mkdocstrings",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "moviepy",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "msgraph-sdk",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mypy",
            "direct": false,
            "version": "1.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "navconfig",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "navigator-api",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "navigator-auth",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "navigator-session",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "networkx",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "nh3",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "numexpr",
            "direct": false,
            "version": "2.10.2",
            "ecosystem": "pypi"
          },
          {
            "name": "numpy",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "nvidia-cudnn-cu12",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "odfpy",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "onnxruntime",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "openai",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "openai",
            "direct": false,
            "version": "2.41.0",
            "ecosystem": "pypi"
          },
          {
            "name": "openapi-schema-validator",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "openapi-spec-validator",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "opencv-python",
            "direct": false,
            "version": "4.10.0.84",
            "ecosystem": "pypi"
          },
          {
            "name": "opencv-python-headless",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "openlit",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "openpyxl",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "opensearch-py",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-api",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-exporter-otlp-proto-grpc",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-exporter-otlp-proto-http",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-sdk",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "orjson",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "paddleocr",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pandas",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pandas-datareader",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pandas-ta-classic",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "panel",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pathspec",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pdf4llm",
            "direct": false,
            "version": "0.0.27",
            "ecosystem": "pypi"
          },
          {
            "name": "peft",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pgvector",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pillow",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pillow-avif-plugin",
            "direct": false,
            "version": "1.5.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pillow-heif",
            "direct": false,
            "version": "0.22.0",
            "ecosystem": "pypi"
          },
          {
            "name": "playwright",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "playwright",
            "direct": false,
            "version": "1.52.0",
            "ecosystem": "pypi"
          },
          {
            "name": "plotly",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "prance",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "praw",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "prometheus-client",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "prompt-toolkit",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "prophet",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "psutil",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "psycopg-binary",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "psycopg-binary",
            "direct": false,
            "version": "3.2.6",
            "ecosystem": "pypi"
          },
          {
            "name": "pulumi",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pycountry",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic",
            "direct": false,
            "version": "2.12.5",
            "ecosystem": "pypi"
          },
          {
            "name": "pydub",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pydub",
            "direct": false,
            "version": "0.25.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pygithub",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pyheif",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyjwt",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pylint",
            "direct": false,
            "version": "3.2.6",
            "ecosystem": "pypi"
          },
          {
            "name": "pylsqpack",
            "direct": false,
            "version": "0.3.23",
            "ecosystem": "pypi"
          },
          {
            "name": "pymdown-extensions",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pymilvus",
            "direct": false,
            "version": "2.4.8",
            "ecosystem": "pypi"
          },
          {
            "name": "pymupdf",
            "direct": false,
            "version": "1.27.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pymupdf4llm",
            "direct": false,
            "version": "0.0.27",
            "ecosystem": "pypi"
          },
          {
            "name": "pyowm",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pyowm",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pypdf",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pyperf",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pytector",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytesseract",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytest",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-aiohttp",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-assume",
            "direct": false,
            "version": "2.4.3",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-asyncio",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-asyncio",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-benchmark",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-cov",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-cython",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-mock",
            "direct": false,
            "version": "3.15.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-xdist",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-xdist",
            "direct": false,
            "version": "3.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "python-arango-async",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "python-datamodel",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "python-docx",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "python-frontmatter",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "python-olm",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "python-pptx",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "python-statemachine",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "python-xmp-toolkit",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytorch-lightning",
            "direct": false,
            "version": "2.6.5",
            "ecosystem": "pypi"
          },
          {
            "name": "pytorch-metric-learning",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytube",
            "direct": false,
            "version": "15.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pywa",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pyyaml",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "querysource",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "questionary",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "rank-bm25",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "pypi"
          },
          {
            "name": "rapidfuzz",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "redis",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "reportlab",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "requests",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "requests-oauthlib",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "resemblyzer",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "pypi"
          },
          {
            "name": "rich",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "rq",
            "direct": false,
            "version": "2.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ruff",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "rustworkx",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "safetensors",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sdist",
            "direct": false,
            "version": "0.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "seaborn",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "selenium",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "selenium",
            "direct": false,
            "version": "4.35.0",
            "ecosystem": "pypi"
          },
          {
            "name": "semantic-text-splitter",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sentence-transformers",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sentencepiece",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "setuptools",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "simsimd",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "slack-bolt",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "slack-sdk",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "spacy",
            "direct": false,
            "version": "3.8.11",
            "ecosystem": "pypi"
          },
          {
            "name": "sphinx",
            "direct": false,
            "version": "6.1.3",
            "ecosystem": "pypi"
          },
          {
            "name": "sqlglot",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sse-starlette",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "stackapi",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "streamlit",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sweetviz",
            "direct": false,
            "version": "2.1.4",
            "ecosystem": "pypi"
          },
          {
            "name": "ta-lib",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "ta-lib",
            "direct": false,
            "version": "0.6.8",
            "ecosystem": "pypi"
          },
          {
            "name": "tabulate",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "tabulate",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tensorflow",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "tf-keras",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "tiktoken",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "tiktoken",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "timm",
            "direct": false,
            "version": "1.0.15",
            "ecosystem": "pypi"
          },
          {
            "name": "tokenizers",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "torch",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "torch",
            "direct": false,
            "version": "2.11.0",
            "ecosystem": "pypi"
          },
          {
            "name": "torch-audiomentations",
            "direct": false,
            "version": "0.12.0",
            "ecosystem": "pypi"
          },
          {
            "name": "torch-pitch-shift",
            "direct": false,
            "version": "1.2.5",
            "ecosystem": "pypi"
          },
          {
            "name": "torchaudio",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "torchmetrics",
            "direct": false,
            "version": "1.8.2",
            "ecosystem": "pypi"
          },
          {
            "name": "torchvision",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "tox",
            "direct": false,
            "version": "4.34.1",
            "ecosystem": "pypi"
          },
          {
            "name": "traceloop-sdk",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "trafilatura",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "transformers",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-languages",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "twine",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-extensions",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "uform",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "ultralytics",
            "direct": false,
            "version": "8.4.14",
            "ecosystem": "pypi"
          },
          {
            "name": "undetected-chromedriver",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "undetected-chromedriver",
            "direct": false,
            "version": "3.5.5",
            "ecosystem": "pypi"
          },
          {
            "name": "urllib3",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "watchdog",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "weasyprint",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "weasyprint",
            "direct": false,
            "version": "69.0",
            "ecosystem": "pypi"
          },
          {
            "name": "webdriver-manager",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "webdriver-manager",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "wheel",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "whisperx",
            "direct": false,
            "version": "3.8.5",
            "ecosystem": "pypi"
          },
          {
            "name": "wikipedia",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "wikipedia",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "xai-sdk",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "xformers",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "xhtml2pdf",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "xmltodict",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "yfinance",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "yfinance",
            "direct": false,
            "version": "0.2.54",
            "ecosystem": "pypi"
          },
          {
            "name": "youtube-search",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "youtube-transcript-api",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "yt-dlp",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "zai-sdk",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "zeep",
            "direct": false,
            "version": "4.3.3",
            "ecosystem": "pypi"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 349,
        "direct_count": 1,
        "indirect_count": 348
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 10,
        "merged_prs": 887,
        "open_issues": 1,
        "closed_ratio": 0,
        "closed_issues": 0,
        "closed_unmerged_prs": 134
      },
      "bus_factor": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "phenobarbital",
          "commits": 8149,
          "avatar_url": "https://avatars.githubusercontent.com/u/139613?v=4"
        },
        {
          "type": "User",
          "login": "Juan2coder",
          "commits": 353,
          "avatar_url": "https://avatars.githubusercontent.com/u/168869108?u=7b75867c6070b8abb2f88a366990e87daf75901b&v=4"
        },
        {
          "type": "User",
          "login": "jelitox",
          "commits": 133,
          "avatar_url": "https://avatars.githubusercontent.com/u/1095986?u=20a3170202ad82003f22b88ab8920bbaf0e5f71b&v=4"
        },
        {
          "type": "User",
          "login": "claude",
          "commits": 123,
          "avatar_url": "https://avatars.githubusercontent.com/u/81847?u=577eaff0520b33aadc0f9fb6d11f5cdb2dd9486e&v=4"
        },
        {
          "type": "Bot",
          "login": "dependabot[bot]",
          "commits": 34,
          "avatar_url": "https://avatars.githubusercontent.com/in/29110?v=4"
        },
        {
          "type": "Bot",
          "login": "google-labs-jules[bot]",
          "commits": 18,
          "avatar_url": "https://avatars.githubusercontent.com/in/842251?v=4"
        },
        {
          "login": "Copilot",
          "commits": 14
        },
        {
          "type": "User",
          "login": "Emmanuel-man",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/186239637?u=daf4c682e317df0ded1c31caa12889cb149b3388&v=4"
        },
        {
          "type": "User",
          "login": "albalau-dev",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/47031189?u=7820e5e111b6af8fa959171cd44ec010c5f17dd5&v=4"
        },
        {
          "type": "User",
          "login": "hacu9",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/21029305?u=24e62480274339ca77eff42e91e3403d9f9145fe&v=4"
        }
      ],
      "contributors_sampled": 11,
      "top_contributor_share": 0.922
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml",
        "codeql-analysis.yml",
        "docs.yml",
        "release.yml",
        "sync-down.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        ".flake8",
        ".pylintrc",
        "tox.ini"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "Cargo.lock",
        "go.sum"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 0,
            "reason": "0 out of 2 merged PRs checked by a CI test -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/2 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 7 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": null,
            "reason": "internal error: internal error: invalid Dockerfile",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 7,
            "reason": "SAST tool detected but not run on all commits",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "42 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "37865f5171b83893e7603f7531e7316fa9ff32c0",
        "ran_at": "2026-07-17T16:46:11Z",
        "aggregate_score": 5.5,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": true,
      "has_security_policy": true,
      "has_dependabot_config": true
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/phenobarbital/ai-parrot",
    "host": "github.com",
    "name": "ai-parrot",
    "owner": "phenobarbital"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 63,
      "inputs": {
        "security": 55,
        "vitality": 100,
        "community": 41,
        "governance": 43,
        "engineering": 74
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 100,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "commits_last_year": 8451,
              "human_commit_share": null,
              "days_since_last_push": 0,
              "active_weeks_last_year": 52
            },
            "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": "52/52 weeks with commits",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 52
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "8451 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 8451
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 100,
              "latest_release_tag": "0.25.20",
              "releases_from_tags": false,
              "days_since_latest_release": 0,
              "mean_days_between_releases": 4.1
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "100 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~4.1 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 4.1
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "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": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "no_commit_sample",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "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": 41,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "at_risk",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 34,
            "inputs": {
              "forks": 10,
              "stars": 27,
              "watchers": 4,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "27 stars",
                "points": 23,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 27
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "10 forks",
                "points": 8,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "4 watchers",
                "points": 2.7,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "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 (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "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
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "at_risk",
        "name": "Sustainability & Governance",
        "value": 43,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 34,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 11,
              "top_contributor_share": 0.922
            },
            "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 92% of commits",
                "points": 1.8,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 92
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "11 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 11
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 7 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "at_risk",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 33,
            "inputs": {
              "merged_prs": 887,
              "open_issues": 1,
              "closed_issues": 0,
              "issue_closed_ratio": 0,
              "closed_unmerged_prs": 134
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "0% of issues closed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 0
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "887/1021 decided PRs merged",
                "points": 33.2,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 887,
                      "decided": 1021
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/2 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "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": 63,
            "inputs": {
              "followers": 124,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "phenobarbital",
              "public_repos": 77,
              "account_age_days": 6120
            },
            "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": "124 followers of phenobarbital",
                "points": 15.1,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 124,
                      "login": "phenobarbital"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "77 public repos, account ~16 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 77
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 16
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 74,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 64,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "5 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "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": ".flake8, .pylintrc, tox.ini",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".flake8, .pylintrc, tox.ini"
                    }
                  }
                ],
                "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "0 out of 2 merged PRs checked by a CI test -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [
                "artificial-intelligence",
                "claude-ai",
                "google-genai",
                "groq-ai",
                "openai",
                "orchestration",
                "xai-api"
              ],
              "has_wiki": false,
              "homepage": "https://phenobarbital.github.io/ai-parrot/",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://phenobarbital.github.io/ai-parrot/",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "7 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 55,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Pinned-Dependencies, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "pinned_dependencies",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 55,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 5.5
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "0 out of 2 merged PRs checked by a CI test -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/2 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 7 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "internal error: internal error: invalid Dockerfile",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool detected but not run on all commits",
                "points": 3.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "42 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "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": 6
            },
            "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": "excellent",
        "name": "AI Readiness",
        "value": 88,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "good",
            "name": "Agent context & guidance",
            "note": "Excluded from scoring (no data or not applicable): Legible commit history. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "legible_commit_history"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 75,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": null,
              "agent_instruction_files": [
                "AGENTS.md",
                "CLAUDE.md",
                "docs/agent.md"
              ],
              "agent_instruction_max_bytes": 13619
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md, CLAUDE.md, docs/agent.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.md, CLAUDE.md, docs/agent.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": "no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "excellent",
            "name": "Verify loop (build / test / typecheck)",
            "note": "Excluded from scoring (no data or not applicable): Demonstrated agent practice, OpenSSF Scorecard: Pinned-Dependencies. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "demonstrated_agent_practice",
                    "openssf_scorecard_pinned_dependencies"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 96,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "Cargo.lock",
                "go.sum"
              ],
              "has_dockerfile": true,
              "typed_language": false,
              "bootstrap_files": [
                "Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "mypy.ini",
                "packages/ai-parrot-loaders/src/parrot_loaders/py.typed",
                "packages/ai-parrot-pipelines/src/parrot_pipelines/py.typed",
                "packages/ai-parrot-tools/src/parrot_tools/py.typed",
                "packages/ai-parrot/src/parrot/py.typed",
                "packages/parrot-formdesigner/src/parrot_formdesigner/py.typed"
              ],
              "agent_commit_share": null,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Makefile"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": ".flake8, .pylintrc, tox.ini",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".flake8, .pylintrc, tox.ini"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "mypy.ini, packages/ai-parrot-loaders/src/parrot_loaders/py.typed, packages/ai-parrot-pipelines/src/parrot_pipelines/py.typed, packages/ai-parrot-tools/src/parrot_tools/py.typed, packages/ai-parrot/src/parrot/py.typed, packages/parrot-formdesigner/src/parrot_formdesigner/py.typed",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "mypy.ini, packages/ai-parrot-loaders/src/parrot_loaders/py.typed, packages/ai-parrot-pipelines/src/parrot_pipelines/py.typed, packages/ai-parrot-tools/src/parrot_tools/py.typed, packages/ai-parrot/src/parrot/py.typed, packages/parrot-formdesigner/src/parrot_formdesigner/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 data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "dependency automation configured, none observed in the sampled commits",
                "points": 5,
                "status": "partial",
                "details": [
                  {
                    "code": "dependency_bot_config_only",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "internal error: internal error: invalid Dockerfile",
                "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": 1030855,
              "source_files_sampled": 3942,
              "oversized_source_files": 50
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Python with type-check config (mypy.ini, packages/ai-parrot-loaders/src/parrot_loaders/py.typed, packages/ai-parrot-pipelines/src/parrot_pipelines/py.typed, packages/ai-parrot-tools/src/parrot_tools/py.typed, packages/ai-parrot/src/parrot/py.typed, packages/parrot-formdesigner/src/parrot_formdesigner/py.typed)",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "typecheck_config_language",
                    "params": {
                      "files": "mypy.ini, packages/ai-parrot-loaders/src/parrot_loaders/py.typed, packages/ai-parrot-pipelines/src/parrot_pipelines/py.typed, packages/ai-parrot-tools/src/parrot_tools/py.typed, packages/ai-parrot/src/parrot/py.typed, packages/parrot-formdesigner/src/parrot_formdesigner/py.typed",
                      "language": "Python"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "50/3942 source files over 60KB",
                "points": 54.3,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 3942,
                      "oversized": 50
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "excellent",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": true,
              "api_schema_files": [
                "packages/ai-parrot-server/src/parrot/mcp/transports/mcp.proto",
                "packages/ai-parrot/src/parrot/core/events/bus/ingress/proto/events.proto"
              ]
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": "packages/ai-parrot-server/src/parrot/mcp/transports/mcp.proto, packages/ai-parrot/src/parrot/core/events/bus/ingress/proto/events.proto",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "packages/ai-parrot-server/src/parrot/mcp/transports/mcp.proto, packages/ai-parrot/src/parrot/core/events/bus/ingress/proto/events.proto"
                    }
                  }
                ],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Could not fetch pypi package 'ai-parrot-workspace' from its registry"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-17T16:46:40.147720Z",
  "schema_version": "0.12.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/p/phenobarbital/ai-parrot.svg",
  "full_name": "phenobarbital/ai-parrot",
  "license_state": "standard",
  "license_spdx": "MIT"
}

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.12.0 — vollständige Methodik · Metriken-Wiki.

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte Statistiken.