Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 1.13.0 · 2026-07-27 10:40 UTC

TA-Lib / ta-lib

TA-Lib (Core C Library)

Java · C · RustBSD-3-Clause★ 1.638 Sterne⑂ 291 Forksseit Aug. 2016Auf GitHub ansehen ↗

TA-Lib/ta-lib erreicht einen Gesundheitsindex von 31 von 100 und liegt damit im Bereich Gefährdet. Am stärksten schneidet es bei Vitality (77/100) ab, am schwächsten bei Security (34/100). Zuletzt heute aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

31
gesamt / 100
Gefährdet

Software-Gesundheitsindex

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

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

Die Richtlinie für Hochrisikojurisdiktionen wendet einen Multiplikator von 50 % auf die gewichtete Gesamtgesundheit an und begrenzt sie auf die Obergrenze Gefährdet von 49.

Eigentümerschaft

TA-LibOrganisation
332 Follower12 öffentliche Reposseit Aug. 2016

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

Metriken nach Kategorie

Vitalität

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

77Gut · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 0 Tagen
13.2/36Commit-Rhythmus — 19/52 Wochen mit Commits
18/18Commit-Volumen — 966 Commits im letzten Jahr
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 29 issue activity found in the last 90 days -- score normalized to 10
Verwendete Eingangsdaten
commits_last_year966
human_commit_share0,78
days_since_last_push0
active_weeks_last_year19
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 6 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 23 Tagen
12.6/27Release-Rhythmus — ein Release etwa alle 174,2 Tage
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Verwendete Eingangsdaten
releases_count6
latest_release_tagv0.7.1
releases_from_tagsnein
days_since_latest_release23
mean_days_between_releases174,2

Community & Verbreitung

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

67Mittel · 18 % des Gesamtindex
Wie die Bewertung erfolgt
52.1/60Stars — 1.638 Stars
20.5/25Forks — 291 Forks
8.1/15Watcher — 30 Watcher
Verwendete Eingangsdaten
forks291
stars1.638
watchers30
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (BSD-3-Clause)
0/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingnein
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templatenein

Nachhaltigkeit & Governance

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

60Mittel · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
9.2/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 59 % der Commits
13.5/13.5Breite der Beitragenden — 20 Beitragende
10/10OpenSSF Scorecard: Contributors — project has 7 contributing companies or organizations
Verwendete Eingangsdaten
bus_factor1
contributors_sampled20
top_contributor_share0,592
Wie die Bewertung erfolgt
43.6/46.8Issue-Lösungsquote — 93 % der Issues geschlossen
28.4/38.3PR-Annahme — 23/31 entschiedene PRs gemergt
0/15OpenSSF Scorecard: Code-Review — Found 1/29 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs23
open_issues7
closed_issues98
issue_closed_ratio0,933
closed_unmerged_prs8
Wie die Bewertung erfolgt
30/30Organisatorische Trägerschaft — im Besitz einer Organisation
0/20Verifizierte Domain
18.1/25Reichweite des Inhabers — 332 Follower von TA-Lib
20.1/25Kontohistorie — 12 öffentliche Repos, Kontoalter ca. 9 Jahre
Verwendete Eingangsdaten
followers332
owner_typeOrganization
is_verified
owner_loginTA-Lib
public_repos12
account_age_days3.628

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

68Mittel · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 6 Workflow(s)
24/24Tests vorhanden
0/16Linter-Konfiguration
0/9.6Pre-Commit-Hooks
6.4/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — 0 out of 1 merged PRs checked by a CI test -- score normalized to 0
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfigja
has_linter_confignein
has_precommit_confignein

Dokumentation

90Exzellent
Wie die Bewertung erfolgt
30/30README
25/25Dokumentationsverzeichnis
15/15Dokumentations-/Homepage-Site — https://ta-lib.org/
10/10Repository-Beschreibung
10/10Topics — 4 Topics
0/10Wiki
Verwendete Eingangsdaten
topicsta-lib, financial, series-analysis, technical-analysis
has_wikinein
homepagehttps://ta-lib.org/
has_readmeja
has_docs_dirja
has_descriptionja

Sicherheit

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

34Gefährdet · 16 % des Gesamtindex

Sicherheitslage

18Kritisch
Wie die Bewertung erfolgt
3/7.5Binary-Artifacts — binaries present in source code
2.2/7.5Branch-Protection — branch protection is not maximal on development and all release branches
0/2.5CI-Tests — 0 out of 1 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 1/29 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
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Lizenz — license file detected
7.5/7.5Maintained — 30 commit(s) and 29 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — keine Daten
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate3,5
high_risk_jurisdiction_cap49
high_risk_jurisdiction_multiplier50
security_posture_after_multiplier18
security_posture_before_jurisdiction35
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): packaging. Die verbleibenden Gewichte wurden renormalisiert. Die Richtlinie für Hochrisikojurisdiktionen wendet einen Multiplikator von 50 % an und begrenzt die Sicherheitslage auf die Obergrenze Gefährdet von 49.
Wie die Bewertung erfolgt
35/35Direkte Abhängigkeiten ohne bekannte Advisories — keine direkte Abhängigkeit trägt ein bekanntes Advisory
0/25Indirekte Abhängigkeiten ohne bekannte Advisories — transitive Menge in diesem Bereich nicht von Entwicklungs- und Test-Abhängigkeiten trennbar
0/40Keine offenen Advisories — kein Advisory trägt ein Veröffentlichungsdatum
Verwendete Eingangsdaten
sourceosv
advisories0
affected_packages0
assessed_packages498
unassessed_packages1
affected_by_severitynone
direct_affected_packages0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Indirekte Abhängigkeiten ohne bekannte Advisories, Keine offenen Advisories. Die verbleibenden Gewichte wurden renormalisiert. 498 aufgelöste Abhängigkeiten wurden mit OSV abgeglichen. 1 konnten nicht bewertet werden — keine aufgelöste Version, ein nicht unterstütztes Ökosystem oder außerhalb der ausgewiesenen Paketliste. Dieses Repository veröffentlicht kein Paket, das der Index auflöst; bewertet wurde daher der Abhängigkeitsgraph des Repositorys. Dieser Graph vermischt Entwicklungs- und Test-Pins mit ausgelieferten Abhängigkeiten, daher werden nur die deklarierten Laufzeit-Abhängigkeiten bewertet; transitive Befunde werden als Kontext ausgewiesen und fließen nicht in die Bewertung ein. Erreichbarkeit wird nicht analysiert.

AI Readiness

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

71Gut · 0 % des Gesamtindex
Wie die Bewertung erfolgt
45/45Agentenanweisungen — CLAUDE.md, src/tools/ta_regtest/CLAUDE.md, ta_codegen/generator/CLAUDE.md
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 78 von 78 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share1
agent_instruction_filesCLAUDE.md, src/tools/ta_regtest/CLAUDE.md, ta_codegen/generator/CLAUDE.md
agent_instruction_max_bytes27.322
Wie die Bewertung erfolgt
12.6/18Bootstrap mit einem Befehl — ta_codegen/generator/Cargo.toml, ta_codegen/output/dotnet/tools/TaCodegenServe.csproj, ta_codegen/output/rust/Cargo.toml (Toolchain-Konvention, kein Task-Runner)
22/22Automatisierte Tests
0/11Lint-/Format-Konfiguration
11/11Statische Typprüfung — Java (statisch typisiert)
10/10Reproduzierbare Umgebung — lockfile
10/10Belegte Agentenpraxis — 9 der letzten 100 Commits von Agenten verfasst oder ihnen zugeschrieben
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilesCargo.lock, pnpm-lock.yaml
has_dockerfilenein
typed_languageja
bootstrap_files
has_devcontainernein
has_linter_confignein
typecheck_configs
agent_commit_share0,09
toolchain_manifeststa_codegen/generator/Cargo.toml, ta_codegen/output/dotnet/tools/TaCodegenServe.csproj, ta_codegen/output/rust/Cargo.toml, ta_codegen/output/rust/library/Cargo.toml, ta_codegen/output/rust/tools/Cargo.toml
dependency_bot_commit_share0
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — Java (statisch typisiert)
43.3/55Handhabbare Dateigrößen — 196/922 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageJava
largest_source_bytes12.329.300
source_files_sampled922
oversized_source_files196
Wie die Bewertung erfolgt
0/40API-Schema (OpenAPI/GraphQL/proto)
0/20MCP-Server
40/40Lauffähige Beispiele — examples
Verwendete Eingangsdaten
example_dirsexamples
has_mcp_signalnein
api_schema_files

Eckdaten

1.638GitHub-Sterne
20Mitwirkende
966Commits, letzte 12 Monate
0Tage seit letztem Push
6Releases
1Bus-Faktor
7offene Issues
npmPaket-Ökosysteme

Warnungen zur Datenerhebung

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • Could not fetch npm package 'ta-lib.org' from its registry
  • Could not fetch crates package 'ta-codegen' from its registry

Weitere Details

Stern- und Fork-Verlauf 0 ★ / 291 ⇿
0Sterne
291Forks
6Releases

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

05010015020025030029172016-122021-102026-07
Major 0Minor 1Patch 5

Jeder Punkt umfasst 9 Tage.

OpenSSF Scorecard 3.5 / 10
3.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-27 10:40 UTC

4Binary-Artifactsbinaries present in source code
3Branch-Protectionbranch protection is not maximal on development and all release branches
0CI-Tests0 out of 1 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 1/29 approved changesets -- score normalized to 0
10Contributorsproject has 7 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 29 issue activity found in the last 90 days -- score normalized to 10
k. A.Packagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
Direkte Abhängigkeiten 5
RegistryPaketVersionsvorgabeManifest
npmkatex^0.16.47website/package.json
crates.ioserde1ta_codegen/generator/Cargo.toml
crates.ioserde_yaml0.9ta_codegen/generator/Cargo.toml
crates.ioserde_json1ta_codegen/generator/Cargo.toml
crates.ioregex1ta_codegen/generator/Cargo.toml
Alle Abhängigkeiten 499

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

RegistryPaketVersionBeziehung
crates.ioregex1.12.3direkt
crates.ioserde1.0.228direkt
crates.ioserde_jsondirekt
crates.ioserde_json1.0.149direkt
crates.ioserde_yaml0.9.34+deprecateddirekt
npmkatex0.16.47direkt
crates.ioaho-corasick1.1.4indirekt
crates.ioequivalent1.0.2indirekt
crates.iohashbrown0.16.1indirekt
crates.ioindexmap2.13.0indirekt
crates.ioitoa1.0.17indirekt
crates.iomemchr2.8.0indirekt
crates.ioproc-macro21.0.106indirekt
crates.ioquote1.0.45indirekt
crates.ioregex-automata0.4.14indirekt
crates.ioregex-syntax0.8.10indirekt
crates.ioryu1.0.23indirekt
crates.ioserde_core1.0.228indirekt
crates.ioserde_derive1.0.228indirekt
crates.iosyn2.0.117indirekt
crates.iounicode-ident1.0.24indirekt
crates.iounsafe-libyaml0.2.11indirekt
crates.iozmij1.0.21indirekt
npm@babel/generator8.0.0indirekt
npm@babel/helper-string-parser7.29.7indirekt
npm@babel/helper-string-parser8.0.0indirekt
npm@babel/helper-validator-identifier7.29.7indirekt
npm@babel/helper-validator-identifier8.0.4indirekt
npm@babel/parser7.29.7indirekt
npm@babel/parser8.0.4indirekt
npm@babel/types7.29.7indirekt
npm@babel/types8.0.4indirekt
npm@bufbuild/protobuf2.12.1indirekt
npm@emnapi/core1.11.1indirekt
npm@emnapi/runtime1.11.1indirekt
npm@emnapi/wasi-threads1.2.2indirekt
npm@esbuild/aix-ppc640.28.1indirekt
npm@esbuild/android-arm0.28.1indirekt
npm@esbuild/android-arm640.28.1indirekt
npm@esbuild/android-x640.28.1indirekt
npm@esbuild/darwin-arm640.28.1indirekt
npm@esbuild/darwin-x640.28.1indirekt
npm@esbuild/freebsd-arm640.28.1indirekt
npm@esbuild/freebsd-x640.28.1indirekt
npm@esbuild/linux-arm0.28.1indirekt
npm@esbuild/linux-arm640.28.1indirekt
npm@esbuild/linux-ia320.28.1indirekt
npm@esbuild/linux-loong640.28.1indirekt
npm@esbuild/linux-mips64el0.28.1indirekt
npm@esbuild/linux-ppc640.28.1indirekt
npm@esbuild/linux-riscv640.28.1indirekt
npm@esbuild/linux-s390x0.28.1indirekt
npm@esbuild/linux-x640.28.1indirekt
npm@esbuild/netbsd-arm640.28.1indirekt
npm@esbuild/netbsd-x640.28.1indirekt
npm@esbuild/openbsd-arm640.28.1indirekt
npm@esbuild/openbsd-x640.28.1indirekt
npm@esbuild/openharmony-arm640.28.1indirekt
npm@esbuild/sunos-x640.28.1indirekt
npm@esbuild/win32-arm640.28.1indirekt
npm@esbuild/win32-ia320.28.1indirekt
npm@esbuild/win32-x640.28.1indirekt
npm@jridgewell/gen-mapping0.3.13indirekt
npm@jridgewell/remapping2.3.5indirekt
npm@jridgewell/resolve-uri3.1.2indirekt
npm@jridgewell/sourcemap-codec1.5.5indirekt
npm@jridgewell/trace-mapping0.3.31indirekt
npm@lit-labs/ssr-dom-shim1.6.0indirekt
npm@lit/reactive-element2.1.2indirekt
npm@mdit-vue/plugin-component3.0.2indirekt
npm@mdit-vue/plugin-frontmatter3.0.2indirekt
npm@mdit-vue/plugin-headers3.0.2indirekt
npm@mdit-vue/plugin-sfc3.0.2indirekt
npm@mdit-vue/plugin-title3.0.2indirekt
npm@mdit-vue/plugin-toc3.0.2indirekt
npm@mdit-vue/shared3.0.2indirekt
npm@mdit-vue/types3.0.2indirekt
npm@mdit/helper0.23.2indirekt
npm@mdit/plugin-alert0.23.2indirekt
npm@mdit/plugin-align0.24.2indirekt
npm@mdit/plugin-attrs0.25.2indirekt
npm@mdit/plugin-container0.23.2indirekt
npm@mdit/plugin-demo0.23.2indirekt
npm@mdit/plugin-figure0.23.2indirekt
npm@mdit/plugin-footnote0.23.2indirekt
npm@mdit/plugin-icon0.24.2indirekt
npm@mdit/plugin-img-lazyload0.23.2indirekt
npm@mdit/plugin-img-mark0.23.2indirekt
npm@mdit/plugin-img-size0.23.2indirekt
npm@mdit/plugin-include0.23.2indirekt
npm@mdit/plugin-inline-rule0.23.2indirekt
npm@mdit/plugin-katex-slim0.26.2indirekt
npm@mdit/plugin-layout0.2.2indirekt
npm@mdit/plugin-mark0.23.2indirekt
npm@mdit/plugin-mathjax-slim0.26.2indirekt
npm@mdit/plugin-plantuml0.24.2indirekt
npm@mdit/plugin-spoiler0.23.2indirekt
npm@mdit/plugin-stylize0.23.2indirekt
npm@mdit/plugin-sub0.24.2indirekt
npm@mdit/plugin-sup0.24.2indirekt
npm@mdit/plugin-tab0.24.2indirekt
npm@mdit/plugin-tasklist0.23.2indirekt
npm@mdit/plugin-tex0.24.2indirekt
npm@mdit/plugin-uml0.24.2indirekt
npm@napi-rs/wasm-runtime1.1.6indirekt
npm@oxc-project/types0.139.0indirekt
npm@parcel/watcher2.5.6indirekt
npm@parcel/watcher-android-arm642.5.6indirekt
npm@parcel/watcher-darwin-arm642.5.6indirekt
npm@parcel/watcher-darwin-x642.5.6indirekt
npm@parcel/watcher-freebsd-x642.5.6indirekt
npm@parcel/watcher-linux-arm-glibc2.5.6indirekt
npm@parcel/watcher-linux-arm-musl2.5.6indirekt
npm@parcel/watcher-linux-arm64-glibc2.5.6indirekt
npm@parcel/watcher-linux-arm64-musl2.5.6indirekt
npm@parcel/watcher-linux-x64-glibc2.5.6indirekt
npm@parcel/watcher-linux-x64-musl2.5.6indirekt
npm@parcel/watcher-win32-arm642.5.6indirekt
npm@parcel/watcher-win32-ia322.5.6indirekt
npm@parcel/watcher-win32-x642.5.6indirekt
npm@pkgr/core0.3.6indirekt
npm@rolldown/binding-android-arm641.1.5indirekt
npm@rolldown/binding-darwin-arm641.1.5indirekt
npm@rolldown/binding-darwin-x641.1.5indirekt
npm@rolldown/binding-freebsd-x641.1.5indirekt
npm@rolldown/binding-linux-arm-gnueabihf1.1.5indirekt
npm@rolldown/binding-linux-arm64-gnu1.1.5indirekt
npm@rolldown/binding-linux-arm64-musl1.1.5indirekt
npm@rolldown/binding-linux-ppc64-gnu1.1.5indirekt
npm@rolldown/binding-linux-s390x-gnu1.1.5indirekt
npm@rolldown/binding-linux-x64-gnu1.1.5indirekt
npm@rolldown/binding-linux-x64-musl1.1.5indirekt
npm@rolldown/binding-openharmony-arm641.1.5indirekt
npm@rolldown/binding-wasm32-wasi1.1.5indirekt
npm@rolldown/binding-win32-arm64-msvc1.1.5indirekt
npm@rolldown/binding-win32-x64-msvc1.1.5indirekt
npm@rolldown/pluginutils1.0.1indirekt
npm@shikijs/core4.3.1indirekt
npm@shikijs/engine-javascript4.3.1indirekt
npm@shikijs/engine-oniguruma4.3.1indirekt
npm@shikijs/langs4.3.1indirekt
npm@shikijs/primitive4.3.1indirekt
npm@shikijs/themes4.3.1indirekt
npm@shikijs/transformers4.3.1indirekt
npm@shikijs/types4.3.1indirekt
npm@shikijs/vscode-textmate10.0.2indirekt
npm@stackblitz/sdk1.11.1indirekt
npm@tybys/wasm-util0.10.3indirekt
npm@types/debug4.1.13indirekt
npm@types/fs-extra11.0.4indirekt
npm@types/hash-sum1.0.2indirekt
npm@types/hast3.0.5indirekt
npm@types/jsesc2.5.1indirekt
npm@types/jsonfile6.1.4indirekt
npm@types/linkify-it5.0.0indirekt
npm@types/markdown-it14.1.2indirekt
npm@types/markdown-it-emoji3.0.1indirekt
npm@types/mdast4.0.4indirekt
npm@types/mdurl2.0.0indirekt
npm@types/ms2.1.0indirekt
npm@types/node24.13.3indirekt
npm@types/node26.1.1indirekt
npm@types/picomatch4.0.3indirekt
npm@types/sax1.2.7indirekt
npm@types/trusted-types2.0.7indirekt
npm@types/unist3.0.3indirekt
npm@types/web-bluetooth0.0.21indirekt
npm@ungap/structured-clone1.3.3indirekt
npm@vitejs/plugin-vue6.0.7indirekt
npm@vue-macros/common3.1.2indirekt
npm@vue/compiler-core3.5.39indirekt
npm@vue/compiler-dom3.5.39indirekt
npm@vue/compiler-sfc3.5.39indirekt
npm@vue/compiler-ssr3.5.39indirekt
npm@vue/devtools-api8.1.5indirekt
npm@vue/devtools-kit8.1.5indirekt
npm@vue/devtools-shared8.1.5indirekt
npm@vue/reactivity3.5.39indirekt
npm@vue/runtime-core3.5.39indirekt
npm@vue/runtime-dom3.5.39indirekt
npm@vue/server-renderer3.5.39indirekt
npm@vue/shared3.5.39indirekt
npm@vuepress/bundler-vite2.0.0-rc.30indirekt
npm@vuepress/bundlerutils2.0.0-rc.30indirekt
npm@vuepress/cli2.0.0-rc.30indirekt
npm@vuepress/client2.0.0-rc.30indirekt
npm@vuepress/core2.0.0-rc.30indirekt
npm@vuepress/helper2.0.0-rc.130indirekt
npm@vuepress/highlighter-helper2.0.0-rc.130indirekt
npm@vuepress/markdown2.0.0-rc.30indirekt
npm@vuepress/plugin-active-header-links2.0.0-rc.130indirekt
npm@vuepress/plugin-back-to-top2.0.0-rc.130indirekt
npm@vuepress/plugin-blog2.0.0-rc.130indirekt
npm@vuepress/plugin-catalog2.0.0-rc.130indirekt
npm@vuepress/plugin-comment2.0.0-rc.130indirekt
npm@vuepress/plugin-copy-code2.0.0-rc.130indirekt
npm@vuepress/plugin-copyright2.0.0-rc.130indirekt
npm@vuepress/plugin-git2.0.0-rc.130indirekt
npm@vuepress/plugin-icon2.0.0-rc.130indirekt
npm@vuepress/plugin-links-check2.0.0-rc.130indirekt
npm@vuepress/plugin-markdown-chart2.0.0-rc.130indirekt
npm@vuepress/plugin-markdown-ext2.0.0-rc.130indirekt
npm@vuepress/plugin-markdown-hint2.0.0-rc.130indirekt
npm@vuepress/plugin-markdown-image2.0.0-rc.130indirekt
npm@vuepress/plugin-markdown-include2.0.0-rc.130indirekt
npm@vuepress/plugin-markdown-math2.0.0-rc.130indirekt
npm@vuepress/plugin-markdown-preview2.0.0-rc.130indirekt
npm@vuepress/plugin-markdown-stylize2.0.0-rc.130indirekt
npm@vuepress/plugin-markdown-tab2.0.0-rc.130indirekt
npm@vuepress/plugin-notice2.0.0-rc.130indirekt
npm@vuepress/plugin-nprogress2.0.0-rc.130indirekt
npm@vuepress/plugin-photo-swipe2.0.0-rc.130indirekt
npm@vuepress/plugin-reading-time2.0.0-rc.130indirekt
npm@vuepress/plugin-redirect2.0.0-rc.130indirekt
npm@vuepress/plugin-rtl2.0.0-rc.130indirekt
npm@vuepress/plugin-sass-palette2.0.0-rc.130indirekt
npm@vuepress/plugin-seo2.0.0-rc.130indirekt
npm@vuepress/plugin-shiki2.0.0-rc.130indirekt
npm@vuepress/plugin-sitemap2.0.0-rc.130indirekt
npm@vuepress/plugin-slimsearch2.0.0-rc.130indirekt
npm@vuepress/plugin-theme-data2.0.0-rc.130indirekt
npm@vuepress/shared2.0.0-rc.30indirekt
npm@vuepress/utils2.0.0-rc.30indirekt
npm@vueuse/core14.3.0indirekt
npm@vueuse/metadata14.3.0indirekt
npm@vueuse/shared14.3.0indirekt
npmacorn8.17.0indirekt
npmansi-regex5.0.1indirekt
npmansi-regex6.2.2indirekt
npmansi-styles4.3.0indirekt
npmarg5.0.2indirekt
npmargparse1.0.10indirekt
npmargparse2.0.1indirekt
npmast-kit2.2.0indirekt
npmast-walker-scope0.9.0indirekt
npmautoprefixer10.5.2indirekt
npmbail2.0.2indirekt
npmballoon-css1.2.0indirekt
npmbaseline-browser-mapping2.10.43indirekt
npmbcrypt-ts8.0.1indirekt
npmbirpc2.9.0indirekt
npmboolbase1.0.0indirekt
npmbrowserslist4.28.6indirekt
npmcac7.0.0indirekt
npmcamelcase5.3.1indirekt
npmcaniuse-lite1.0.30001805indirekt
npmccount2.0.1indirekt
npmchalk5.6.2indirekt
npmcharacter-entities-html42.1.0indirekt
npmcharacter-entities-legacy3.0.0indirekt
npmcheerio1.2.0indirekt
npmcheerio-select2.1.0indirekt
npmchokidar5.0.0indirekt
npmcli-cursor5.0.0indirekt
npmcli-spinners3.4.0indirekt
npmcliui6.0.0indirekt
npmcolor-convert2.0.1indirekt
npmcolor-name1.1.4indirekt
npmcolorjs.io0.5.2indirekt
npmcomma-separated-tokens2.0.3indirekt
npmcommander14.0.3indirekt
npmcommander8.3.0indirekt
npmconfbox0.1.8indirekt
npmconfbox0.2.4indirekt
npmconnect-history-api-fallback2.0.0indirekt
npmcreate-codepen2.0.3indirekt
npmcss-select5.2.2indirekt
npmcss-what6.2.2indirekt
npmcsstype3.2.3indirekt
npmdebug4.4.3indirekt
npmdecamelize1.2.0indirekt
npmdequal2.0.3indirekt
npmdetect-libc2.1.2indirekt
npmdevlop1.1.0indirekt
npmdijkstrajs1.0.3indirekt
npmdom-serializer2.0.0indirekt
npmdomelementtype2.3.0indirekt
npmdomhandler5.0.3indirekt
npmdomutils3.2.2indirekt
npmelectron-to-chromium1.5.389indirekt
npmemoji-regex8.0.0indirekt
npmencoding-sniffer0.2.1indirekt
npmentities4.5.0indirekt
npmentities6.0.1indirekt
npmentities7.0.1indirekt
npmenvinfo7.21.0indirekt
npmesbuild0.28.1indirekt
npmescalade3.2.0indirekt
npmesprima4.0.1indirekt
npmestree-walker2.0.2indirekt
npmexsolve1.1.0indirekt
npmextend3.0.2indirekt
npmextend-shallow2.0.1indirekt
npmfdir6.5.0indirekt
npmfflate0.8.3indirekt
npmfind-up4.1.0indirekt
npmfraction.js5.3.4indirekt
npmfs-extra11.3.6indirekt
npmfsevents2.3.3indirekt
npmget-caller-file2.0.5indirekt
npmget-east-asian-width1.6.0indirekt
npmgiscus1.6.0indirekt
npmgraceful-fs4.2.11indirekt
npmgray-matter4.0.3indirekt
npmhas-flag4.0.0indirekt
npmhash-sum2.0.0indirekt
npmhast-util-from-html2.0.3indirekt
npmhast-util-from-parse58.0.3indirekt
npmhast-util-parse-selector4.0.0indirekt
npmhast-util-sanitize5.0.2indirekt
npmhast-util-to-html9.0.5indirekt
npmhast-util-whitespace3.0.0indirekt
npmhastscript9.0.1indirekt
npmhookable5.5.3indirekt
npmhtml-void-elements3.0.0indirekt
npmhtmlparser210.1.0indirekt
npmiconv-lite0.6.3indirekt
npmimmutable5.1.9indirekt
npmis-extendable0.1.1indirekt
npmis-extglob2.1.1indirekt
npmis-fullwidth-code-point3.0.0indirekt
npmis-glob4.0.3indirekt
npmis-interactive2.0.0indirekt
npmis-plain-obj4.1.0indirekt
npmis-unicode-supported2.1.0indirekt
npmjs-yaml3.15.0indirekt
npmjs-yaml4.3.0indirekt
npmjsesc3.1.0indirekt
npmjson52.2.3indirekt
npmjsonfile6.2.1indirekt
npmkind-of6.0.3indirekt
npmlightningcss1.32.0indirekt
npmlightningcss-android-arm641.32.0indirekt
npmlightningcss-darwin-arm641.32.0indirekt
npmlightningcss-darwin-x641.32.0indirekt
npmlightningcss-freebsd-x641.32.0indirekt
npmlightningcss-linux-arm-gnueabihf1.32.0indirekt
npmlightningcss-linux-arm64-gnu1.32.0indirekt
npmlightningcss-linux-arm64-musl1.32.0indirekt
npmlightningcss-linux-x64-gnu1.32.0indirekt
npmlightningcss-linux-x64-musl1.32.0indirekt
npmlightningcss-win32-arm64-msvc1.32.0indirekt
npmlightningcss-win32-x64-msvc1.32.0indirekt
npmlilconfig3.1.3indirekt
npmlinkify-it5.0.2indirekt
npmlit3.3.3indirekt
npmlit-element4.2.2indirekt
npmlit-html3.3.3indirekt
npmlocal-pkg1.2.1indirekt
npmlocate-path5.0.0indirekt
npmlog-symbols7.0.1indirekt
npmmagic-string0.30.21indirekt
npmmagic-string-ast1.0.3indirekt
npmmarkdown-it14.3.0indirekt
npmmarkdown-it-anchor9.2.1indirekt
npmmarkdown-it-cjk-friendly2.0.2indirekt
npmmarkdown-it-emoji3.0.0indirekt
npmmdast-util-to-hast13.2.1indirekt
npmmdurl2.0.0indirekt
npmmicromark-util-character2.1.1indirekt
npmmicromark-util-encode2.0.1indirekt
npmmicromark-util-sanitize-uri2.0.1indirekt
npmmicromark-util-symbol2.0.1indirekt
npmmicromark-util-types2.0.2indirekt
npmmimic-function5.0.1indirekt
npmmlly1.8.2indirekt
npmms2.1.3indirekt
npmmuggle-string0.4.1indirekt
npmnanoid3.3.16indirekt
npmnanoid5.1.16indirekt
npmnode-addon-api7.1.1indirekt
npmnode-releases2.0.51indirekt
npmnth-check2.1.1indirekt
npmonetime7.0.0indirekt
npmoniguruma-parser0.12.2indirekt
npmoniguruma-to-es4.3.6indirekt
npmora9.4.1indirekt
npmp-limit2.3.0indirekt
npmp-locate4.1.0indirekt
npmp-try2.2.0indirekt
npmparse57.3.0indirekt
npmparse5-htmlparser2-tree-adapter7.1.0indirekt
npmparse5-parser-stream7.1.2indirekt
npmpath-exists4.0.0indirekt
npmpathe2.0.3indirekt
npmperfect-debounce2.1.0indirekt
npmphotoswipe5.4.4indirekt
npmpicocolors1.1.1indirekt
npmpicomatch4.0.5indirekt
npmpkg-types1.3.1indirekt
npmpkg-types2.3.1indirekt
npmpngjs5.0.0indirekt
npmpostcss8.5.22indirekt
npmpostcss-load-config6.0.1indirekt
npmpostcss-value-parser4.2.0indirekt
npmproperty-information7.2.0indirekt
npmpunycode.js2.3.1indirekt
npmqrcode1.5.4indirekt
npmquansync0.2.11indirekt
npmreaddirp5.0.0indirekt
npmregex6.1.0indirekt
npmregex-recursion6.0.2indirekt
npmregex-utilities2.3.0indirekt
npmrehype-parse9.0.1indirekt
npmrehype-sanitize6.0.0indirekt
npmrehype-stringify10.0.1indirekt
npmrequire-directory2.1.1indirekt
npmrequire-main-filename2.0.0indirekt
npmrestore-cursor5.1.0indirekt
npmrolldown1.1.5indirekt
npmrxjs7.8.2indirekt
npmsafer-buffer2.1.2indirekt
npmsass1.100.0indirekt
npmsass-embedded1.100.0indirekt
npmsass-embedded-all-unknown1.100.0indirekt
npmsass-embedded-android-arm1.100.0indirekt
npmsass-embedded-android-arm641.100.0indirekt
npmsass-embedded-android-riscv641.100.0indirekt
npmsass-embedded-android-x641.100.0indirekt
npmsass-embedded-darwin-arm641.100.0indirekt
npmsass-embedded-darwin-x641.100.0indirekt
npmsass-embedded-linux-arm1.100.0indirekt
npmsass-embedded-linux-arm641.100.0indirekt
npmsass-embedded-linux-musl-arm1.100.0indirekt
npmsass-embedded-linux-musl-arm641.100.0indirekt
npmsass-embedded-linux-musl-riscv641.100.0indirekt
npmsass-embedded-linux-musl-x641.100.0indirekt
npmsass-embedded-linux-riscv641.100.0indirekt
npmsass-embedded-linux-x641.100.0indirekt
npmsass-embedded-unknown-all1.100.0indirekt
npmsass-embedded-win32-arm641.100.0indirekt
npmsass-embedded-win32-x641.100.0indirekt
npmsax1.6.0indirekt
npmscule1.3.0indirekt
npmsection-matter1.0.0indirekt
npmset-blocking2.0.0indirekt
npmshiki4.3.1indirekt
npmsignal-exit4.1.0indirekt
npmsitemap9.0.1indirekt
npmslimsearch2.3.0indirekt
npmsource-map-js1.2.1indirekt
npmspace-separated-tokens2.0.2indirekt
npmsprintf-js1.0.3indirekt
npmstdin-discarder0.3.2indirekt
npmstring-width4.2.3indirekt
npmstring-width8.2.2indirekt
npmstringify-entities4.0.4indirekt
npmstrip-ansi6.0.1indirekt
npmstrip-ansi7.2.0indirekt
npmstrip-bom-string1.0.0indirekt
npmsupports-color8.1.1indirekt
npmsync-child-process1.0.2indirekt
npmsync-message-port1.2.0indirekt
npmsynckit0.11.13indirekt
npmtinyglobby0.2.17indirekt
npmtrim-lines3.0.1indirekt
npmtrough2.2.0indirekt
npmtslib2.8.1indirekt
npmuc.micro2.1.0indirekt
npmufo1.6.4indirekt
npmundici7.28.0indirekt
npmundici-types7.18.2indirekt
npmundici-types8.3.0indirekt
npmunified11.0.5indirekt
npmunist-util-is6.0.1indirekt
npmunist-util-position5.0.0indirekt
npmunist-util-stringify-position4.0.0indirekt
npmunist-util-visit5.1.0indirekt
npmunist-util-visit-parents6.0.2indirekt
npmuniversalify2.0.1indirekt
npmunplugin3.3.0indirekt
npmunplugin-utils0.3.2indirekt
npmupath2.0.1indirekt
npmupath3.0.8indirekt
npmupdate-browserslist-db1.2.3indirekt
npmvarint6.0.0indirekt
npmvfile6.0.3indirekt
npmvfile-location5.0.3indirekt
npmvfile-message4.0.3indirekt
npmvite8.1.4indirekt
npmvue3.5.39indirekt
npmvue-router5.1.0indirekt
npmvuepress2.0.0-rc.30indirekt
npmvuepress-plugin-components2.0.0-rc.107indirekt
npmvuepress-plugin-md-enhance2.0.0-rc.107indirekt
npmvuepress-shared2.0.0-rc.107indirekt
npmvuepress-theme-hope2.0.0-rc.107indirekt
npmweb-namespaces2.0.1indirekt
npmwebpack-virtual-modules0.6.2indirekt
npmwhatwg-encoding3.1.1indirekt
npmwhatwg-mimetype4.0.0indirekt
npmwhich-module2.0.1indirekt
npmwrap-ansi6.2.0indirekt
npmy18n4.0.3indirekt
npmyaml2.9.0indirekt
npmyargs15.4.1indirekt
npmyargs-parser18.1.3indirekt
npmyoctocolors2.1.2indirekt
npmzwitch2.0.4indirekt
Abhängigkeits-Advisories 0

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

Keine bekannten Advisories betreffen die bewerteten Abhängigkeiten.

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

JSON-Rohbericht maschinenlesbar
{
  "data": {
    "repo": {
      "topics": [
        "ta-lib",
        "financial",
        "series-analysis",
        "technical-analysis"
      ],
      "is_fork": false,
      "size_kb": 1008183,
      "has_wiki": false,
      "homepage": "https://ta-lib.org/",
      "languages": {
        "C": 14039671,
        "C#": 606931,
        "M4": 2173,
        "Java": 32229391,
        "Rust": 12494524,
        "SCSS": 5456,
        "CMake": 42533,
        "Shell": 15521,
        "Python": 295013,
        "Makefile": 7066,
        "TypeScript": 3352
      },
      "pushed_at": "2026-07-27T08:35:28Z",
      "created_at": "2016-08-20T06:28:16Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-27T02:56:58Z",
      "description": "TA-Lib (Core C Library)",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "BSD-3-Clause",
      "default_branch": "main",
      "license_spdx_raw": "BSD-3-Clause",
      "primary_language": "Java",
      "significant_languages": [
        "Java",
        "C",
        "Rust"
      ]
    },
    "owner": {
      "blog": "https://sourceforge.net/p/ta-lib/bugs/102/",
      "name": "TA-Lib",
      "type": "Organization",
      "login": "TA-Lib",
      "company": null,
      "location": null,
      "followers": 332,
      "avatar_url": "https://avatars.githubusercontent.com/u/21127168?v=4",
      "created_at": "2016-08-19T14:54:08Z",
      "is_verified": null,
      "public_repos": 12,
      "account_age_days": 3628
    },
    "license": {
      "state": "standard",
      "spdx_id": "BSD-3-Clause",
      "raw_spdx": "BSD-3-Clause",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.7.1",
          "kind": "patch",
          "published_at": "2026-07-03T17:36:45Z"
        },
        {
          "tag": "v0.6.4",
          "kind": "patch",
          "published_at": "2025-01-11T05:00:37Z"
        },
        {
          "tag": "v0.6.3",
          "kind": "patch",
          "published_at": "2025-01-06T00:16:36Z"
        },
        {
          "tag": "v0.6.2",
          "kind": "patch",
          "published_at": "2024-12-26T04:12:47Z"
        },
        {
          "tag": "v0.6.1",
          "kind": "patch",
          "published_at": "2024-12-23T21:37:11Z"
        },
        {
          "tag": "v0.4.0",
          "kind": "minor",
          "published_at": "2024-02-13T17:47:56Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "144c635bb429759235696d9f95e1734169205f3a",
          "body": "…one (replaced by the generated metadata registry)",
          "is_bot": false,
          "headline": "docs: CLAUDE.md project tree — the hand-written Java meta/ layer is g…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-27T02:50:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c4d46dbdc905712bdda7e27a978056ae3b5258b5",
          "body": "… emitters\n\nFour lints under -D warnings (unnecessary_to_owned, unnecessary_map_or,\nredundant_closure_for_method_calls, too_many_lines on the ParamHolder\nemitter — allowed per the c_stream.rs precedent). Emission-neutral: a full\ngenerate produces zero file changes.\n\nCo-authored-by: MF,CC <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(codegen): clear the clippy pedantic gate in the Java doc/metadata…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-27T02:41:37Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "acad5800617507d77364cd9839d06382605294d1",
          "body": null,
          "is_bot": true,
          "headline": "Update dist package (from ubuntu-latest)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-27T02:36:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bcbecf469891abc98c26fde3c8525780c3e97f7a",
          "body": null,
          "is_bot": true,
          "headline": "Update dist package (from windows-2022)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-27T02:28:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dab2d5c9295d5bbc82cfd63d40766643614b1ce0",
          "body": "Merged for contribution credit. dev already carries the reworked\nimplementation (e9848f1e) built on this PR's end-bounding idea; all\nconflicts resolved to the dev version, so this merge changes no content.",
          "is_bot": false,
          "headline": "Merge PR #143: bound each MAVP ma() pass at its period's last use",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-27T02:01:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e6160bc12d0de60ec4678dc37b12ed6b00d6de6a",
          "body": "…ith doclint\n\njava_doc.rs renders each function's ta_codegen/input/<name>/<name>.md onto the\npublic batch API -- the Java counterpart of rust_doc.rs. Until now Core.java's\nonly /** blocks were the templated streaming blurbs: 168 batch methods with no\ndocumentation and no IDE hover. Prose comes from \n[…]\nges, exit 0; xlang-hash Rust 200961 / Java\n200907 cases, 0 mismatches; cargo test all 10 suites 0 failed; 5 Java suites +\ndoclint; regen idempotent; C/Rust/.NET generated output byte-identical.\n\nMF,CC",
          "is_bot": false,
          "headline": "feat(java): generate batch Javadoc from the canonical .md + gate it w…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-27T00:27:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1bd1fcec96be1ddd94c4fee6a522cb37434dc069",
          "body": "Java gets the introspection layer C and Rust already ship, replacing the frozen\n2007 meta/ island that A2 had to delete. Package io.github.talib.metadata:\nFunctions.all()/byName(), rows as immutable records, plus a ParamHolder and a\nGENERATED STATIC SWITCH for call-by-name -- C's TA_ParamHolderAlloc\n[…]\n961 / Java\n200907 cases, 0 mismatches; cargo test all 10 suites 0 failed; 5 junit-free Java\nsuites (MetadataTest auto-discovered); regen idempotent; C/Rust/.NET generated\noutput byte-identical.\n\nMF,CC",
          "is_bot": false,
          "headline": "feat(java): ship the generated metadata registry + call-by-name",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-26T21:51:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e9848f1ec15b629fb2192e6038bcdfc25b28494f",
          "body": "…ast use (#143)\n\nBuilds on PR #143 by @dexhunter: each per-period ma() pass now ends at the\nlast output using that period — bit-safe because every dispatched MA fills\nforward (truncating the end cannot change earlier outputs). The\nflag-and-rescan selection is replaced by a counting sort sized by the\n[…]\nlock-copy and wrong-fast-path-buffer defects pass\nevery pre-existing gate and are caught only by this group.\n\nAlso adds the missing #128 CHANGELOG entry.\n\nCo-authored-by: MF,CC <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(mavp): group outputs by period and bound each ma() pass at its l…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-26T21:12:34Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6ceb94e83c1e0ad4aeeb8b56edc8148f8e1dafb5",
          "body": "…overy\n\nThe A2 checkpoint review found what the gates structurally cannot see.\n\nThe published ta-lib.org Java pages documented an API that no longer exists. A2\nrewrote only the import FQNs there, so the pages LOOKED reviewed while every\nsample stayed on the pre-A1 surface: MInteger/RetCode imports (\n[…]\nd; 4 Java suites pass; regen\nidempotent. Note the gate run happened on a tree that also carried another\nsession's in-flight #143 MAVP work, so it green-lit both; the commit itself is\nJava-only.\n\nMF,CC",
          "is_bot": false,
          "headline": "fix(java): A2 checkpoint review — website API docs, casing, test disc…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-26T20:42:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e2b15dde33c82f705d425bc6caab365ca1fc71de",
          "body": "The public batch surface returns `record OutRange(begIdx, count)` and throws on\nmisuse. A range shorter than the lookback stays a SUCCESS with count 0 -- C's\ncontract -- and is never an exception.\n\nFragments keep the C shape as package-private cores (`xxxInternal`,\n`xxxUnguardedInternal`); `java.rs`\n[…]\nJava\n200907 cases, 0 mismatches; cargo test ALL 10 suites 0 failed; 4 junit-free Java\nsuites pass (38+30+4 checks + stream smoke); regen idempotent; C/Rust/.NET\ngenerated output byte-identical.\n\nMF,CC",
          "is_bot": false,
          "headline": "refactor(java)!: OutRange + throwing wrappers; rename to io.github.talib",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-26T05:15:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "74ba14d4eae4ef89ba1dde8327433eeb510cc38f",
          "body": "Core is immutable (final fields, deep-immutable CandleSetting, defensive\ncopies, no accessor hands an array back), so sharing one across threads is\nsafe under JLS 17.5 without synchronization. Settings move to a hand-written\nCoreBuilder; Core.DEFAULT is the shared zero-config instance.\n\nCompatibilit\n[…]\n --codegen 161/0/7 x4 languages, exit 0; xlang-hash Rust 200961 /\nJava 200907 cases, 0 mismatches; cargo test 306+226+2, 0 failed; regen\nidempotent; C/Rust/.NET generated output byte-identical.\n\nMF,CC",
          "is_bot": false,
          "headline": "refactor(java): immutable Core + CoreBuilder; drop compatibility",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-26T03:27:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0e48c4eb35f8e842040a6a2f6a0363f15d58e8da",
          "body": "…riod prose\n\nPath-Dependent was the one category described only in the abstract. Add AD (a\nrunning accumulation whose level is an artifact of the start date) and SAR (a\nstate machine that can pick the opposite initial trend direction) as a two-item\nlist, so the reader sees both shapes the opening se\n[…]\nction page already names the setting it\nresponds to.\n\nLink \"Function Documentation\" in the intro to /functions/ rather than leaving\n\"the documentation\" for the reader to locate.\n\nCo-authored-by: MF,CC",
          "is_bot": false,
          "headline": "docs(website): give Path-Dependent two examples; trim the unstable-pe…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-26T01:00:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ba2269e3b6f294a72f8a7dfb6b4e62a2d74c36d7",
          "body": "TA_MAVP normalized every requested period into localPeriodArray, then, for\neach distinct period still flagged, called ma() over the whole remaining\nrange and scanned the rest of localPeriodArray to find and copy every\noutput sharing that period. Every ma() pass therefore ran to endIdx even\nwhen its \n[…]\ninside the\n1e-12 bar).\n\nThe added allocation is 2*(optInMaxPeriod+1) ints, sized by the period\nrange rather than the data, and is null-checked with full cleanup.\n\nCo-Authored-By: Aiden <aiden@weco.ai>",
          "is_bot": false,
          "headline": "perf(mavp): bound each ma() pass at its period's last use",
          "author_name": "Dex Hunter",
          "author_login": "dexhunter",
          "committed_at": "2026-07-25T12:12:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "68757ff34d2ce5ed5bf3379aa936605fa515565f",
          "body": "Transitive dev dependency of the VuePress/vite build. Path traversal in\nprevious-source-map auto-loading; not reachable here (build-time only,\nno untrusted CSS). Lockfile-only.\n\nCo-authored-by: MF,CC",
          "is_bot": false,
          "headline": "build(website): bump postcss 8.5.17 -> 8.5.22 (GHSA-r28c-9q8g-f849)",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-25T03:59:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e203f7c436a9c21fd08246661971cfcb7ee37517",
          "body": "\"If Initial Unstable Period, then...\" rather than a bare category name, so a\nreader landing mid-page sees that a section covers one case out of four, not a\nproperty every function has, and that the answer is the body below.\n\nAnchors are pinned with {#id} (markdown-it-attrs, already enabled by the th\n[…]\nnction pages deep-link\nthese sections, and letting the slugifier follow the wording would both lengthen\nthe ids and break every inbound link the next time a heading is reworded.\n\nCo-authored-by: MF,CC",
          "is_bot": false,
          "headline": "docs(website): phrase the stability headings as conditionals",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-25T02:58:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "25c5157dd47c01a1a73800d477b2e5bd3c8eb515",
          "body": "…I section\n\nReference page: trim the Start-Independent and Initial Unstable Period sections\nto what the reader needs, drop the two \"comparing across different-length\nwindows\" restatements, and link /api/unstable-period/ for what to do about an\nunstable period. Call the four things \"categories\" rathe\n[…]\nasted in issues and forum answers, so a bare rename would silently land\nthose readers at the top of a long page. The four in-repo pages that used it are\nmoved to the new anchor.\n\nCo-authored-by: MF,CC",
          "is_bot": false,
          "headline": "docs(website): tighten the numerical-stability wording; rename the AP…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-25T02:49:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ba8c75f08d225a4abc33072f3b5e0c8505463101",
          "body": "…lity line\n\nA state's definition is written once, on /functions/stability, and linked. The\nper-function line adds a clause only when there is something the link cannot\nsay: which inner function the unstable period is inherited from (DEMA -> EMA),\nwhat this function's own MAType default implies (BBAN\n[…]\nso inherits a period that still\nmoves its lookback (ADOSC -> EMA). Start-Independent, an intrinsic unstable\nperiod and plain path-dependence now render as the bare linked state.\n\nCo-authored-by: MF,CC",
          "is_bot": false,
          "headline": "docs(website): say only what is specific to the function in the stabi…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-25T01:59:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d9108cd2758e769912626825f8825398ab06b9e0",
          "body": "…ckboxes\n\nThe Properties table claimed \"Start-Independent\" for 17 functions that are not.\nThe YAML `unstable_period` flag answers the ABI question -- does this function own\na tunable TA_FUNC_UNST_* id -- which is what TA_FUNC_FLG_UNST_PER has always\nmeant, and the documentation was rendering it as a\n[…]\non) but\nunchecked cells no longer carry their tooltip. Verified: the phrases \"never\nconverges\" and \"candlestick-pattern signal\" now appear only on the pages where\nthey are true.\n\nCo-authored-by: MF,CC",
          "is_bot": false,
          "headline": "docs(website): derive numerical stability; state it in prose, not che…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-25T01:41:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7b842bb10de1a133f9f5fa0042ca82b274c57761",
          "body": "Present the RSI and BBANDS formulas as KaTeX display blocks (already enabled\nsite-wide via vuepress-theme-hope markdown.math + katex) instead of prose with\ninline math, followed by a short \"where ...\" legend line.\n\nRSI now states Wilder's published form (RS, then 100 - 100/(1+RS)) rather than\nour fu\n[…]\neriod shortcuts stay out of the docs.\n\ndocs_site: drop any \"##\" section whose body is blank, so an empty \"## Notes\"\nplaceholder in an input page never renders as a bare heading.\n\nCo-authored-by: MF,CC",
          "is_bot": false,
          "headline": "docs(rsi,bbands): typeset formulas as display math; drop empty sections",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-25T01:08:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1ce79015cc02f9ef42f77db0c72beffb28772c33",
          "body": null,
          "is_bot": true,
          "headline": "Update dist package (from ubuntu-latest)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-24T20:19:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "80a11563bfea3957bf1b7b4530e5508892ba30af",
          "body": null,
          "is_bot": true,
          "headline": "Update dist package (from windows-2022)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-24T20:11:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "71105c62c7a5d43c950f05ce981785c42cc78ba8",
          "body": "… comments\n\nThe fuzz/xlang param-vector builder collected MAType candidates into a fixed\ncand[10] with an `nc < 10` guard that dropped extra values SILENTLY — it never\nreached the FUZZ_MAX_VEC overflow counter, so a MAType list longer than 10\nnon-default would quietly stop being swept. #93 (DISABLED\n[…]\n\" comment fixed.\n\nBehavior-neutral at M=11 (no coverage change); the next MAType add now fails\nthe gate instead of silently dropping arms. All gates green (--codegen,\n--xlang-hash, --fuzz-064, plain).",
          "is_bot": false,
          "headline": "test(regtest): make MAType vector-cap truncation fail loudly, refresh…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-24T19:56:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d7519d6c7a73403466d28630c29619d07666d198",
          "body": "MACDEXT carries 3 MAType params, so its stream-vector count is 6*M+1 in the\nMAType-list length M. #93 added TA_MAType_DISABLED (M 10->11), taking it from\n61 to 67 vectors and tripping the STREAM_MAX_VEC=64 overflow guard — a hard\nfailure of the unfiltered `ta_regtest --codegen` stream_verify gate th\n[…]\ned since #93 landed. Raise the cap to 128 (runway for ~10 more\nMATypes); the dropped MACDEXT DISABLED arms are now actually stream-verified\n(15596 legs, up from 10684). Coverage restored, not reduced.",
          "is_bot": false,
          "headline": "test(regtest): raise STREAM_MAX_VEC 64->128 for MACDEXT after #93 (#93)",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-24T18:18:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4ebb02a3fcbac58d2640e585d2ceef0b84b21a85",
          "body": "…ers (#142)\n\nRoute the abstract sweep's empty-output cases (period consumes the whole\nrange -> TA_SUCCESS + zero-length) through server_verify, so the contract is\nverified against the Rust/Java/.NET servers, not just in-process C. The\ngeneric --codegen/--xlang-hash sweeps clamp every lookback below nbBars, so\nperiod>data was the one boundary never cross-checked. Non-vacuity guard +\n84 cases x 4 langs; sabotage-proven both ways.\n\nCo-authored-by: MF,CC",
          "is_bot": false,
          "headline": "test(regtest): cross-check period>input empty-output vs language serv…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-24T18:01:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7bf49d271bf3ba1165dd8de360216f0d20f3fa21",
          "body": "…s (#93)\n\nThe MA page also notes that DISABLED bypasses smoothing for any period.",
          "is_bot": false,
          "headline": "docs(functions): list TA_MAType_DISABLED in per-function MAType table…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-24T16:57:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7566c9f4fed9bc97435fe09fa2f5a860f1085dc3",
          "body": "New TA_MAType value that makes the moving average a plain input->output copy\nwith a lookback of 0, regardless of the period parameter. Every function that\ntakes an MAType parameter (MA, MAVP, BBANDS, MACDEXT, STOCH/STOCHF/STOCHRSI,\nAPO/PPO/PVO) accepts it: they all route the copy through the single \n[…]\nISABLED swept everywhere: four-variant parity\n(guarded/unguarded/TA_S_), batch==stream (stream_verify), and bit-identical\nC/Rust/Java (--xlang-hash); the frozen-oracle differential sweep is unchanged.",
          "is_bot": false,
          "headline": "feat(ma): TA_MAType_DISABLED — period-independent no-smoothing (#93)",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-24T16:57:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "39aac3bd8822a9b5fa77f2d91468472fe13ced7c",
          "body": null,
          "is_bot": true,
          "headline": "Update dist package (from ubuntu-latest)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-24T07:40:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c6cf93e43b1a5dc7c0516eb54455ef27f940322f",
          "body": null,
          "is_bot": true,
          "headline": "Update dist package (from windows-2022)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-24T07:31:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2b8b7c4596b7909fcce573ba31ef97a61c240823",
          "body": "Several period-scaled integer expressions were evaluated in int32 before\nbeing stored to a double, overflowing (signed UB) well inside the advertised\n[.,100000] period range:\n\n- WMA/HMA  divider = (n*(n+1))>>1  -- the int product overflows at n>=46341\n  (the issue's 65536 is only where the post-shif\n[…]\ne build folds the overflow to the correct value (the optimizer is\n  entitled to assume no signed overflow), so the value check there is\n  coherence-only.\n\nCo-authored-by: MF,CC <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(wma,hma,linearreg): compute period-scaled dividers in double (#142)",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-24T04:28:37Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "81d9d54b879c38ab955194b40db181f00f6591a1",
          "body": "Adding TA_MAType_HMA (#139) surfaced four places the MAType enum was still\nhand-maintained even though enums.yaml is the source of truth. All four now\nderive from enums.yaml:\n\n- include/ta_defs.h: moved the TA_MAType enum inside GENCODE SECTION 1 (a\n  one-time marker edit) and emit it from enums.yam\n[…]\nd; no\nindicator-source drift). Gates: 303 generator tests + clippy; C reference\nregtest (four-variant bitwise parity); all 4 servers built; cross-language\n--codegen-only 161/161 x 4 languages, 0 fail.",
          "is_bot": false,
          "headline": "refactor(codegen): ta_codegen owns every MAType enum surface (#140)",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-24T03:29:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "22924cdb7856fe68bb811984f4d3eb3b959a7618",
          "body": "The flag never meant the \"start-dependent\" umbrella its name implied. An\nunstable-period function is *also* start-dependent (its warm-up depends on\nwhere the data begins) yet is deliberately NOT flagged, because it converges;\nthe flag marks only the set that never converges -- running accumulations\n\n[…]\nkeys;\nfull generator suite (611); C build + reference regtest (path-dependent set\nstill skipped correctly); all 4 language servers built; cross-language\n--codegen-only (161/161 x 4 languages, 0 fail).",
          "is_bot": false,
          "headline": "refactor(abstract): rename TA_FUNC_FLG_START_DEP -> TA_FUNC_FLG_PATH_DEP",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-24T02:35:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "180ec2fd99987441763044bff0b762bd505a9ac1",
          "body": "Add a generated `## Properties` table to every function page\n(backends/docs_site.rs, injected before `## Implementation`), surfacing the\nabstract-layer flags that were previously invisible in the docs:\n\n- Numerical Stability column: a single-select of three mutually-exclusive\n  states folded from tw\n[…]\nstability logic reads both `path_dependent` and the current\n`start_dependent` YAML word, so the generated pages are byte-stable across\nthe pending TA_FUNC_FLG_START_DEP -> TA_FUNC_FLG_PATH_DEP rename.",
          "is_bot": false,
          "headline": "docs(website): per-function Properties table (stability + display flags)",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-24T02:15:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "32f69a58dd2564596629bb3f3a9977ee5ae519c8",
          "body": "Flip hma.yaml to [overlap, stream]. Recognition was already unlocked by\n#139's param-pure dual-mode split (optInTimePeriod == 2 || == 3): the\nanalyzer derives a full dual-mode plan -- mode A (degenerate, T3 input-ring\nonly) and mode B (general: two input rings + the sqrt(n)-1 dRing CIRCBUF).\nThe sol\n[…]\nC dualmode modeA=T3/state=5 modeB=T3/state=19. The abstract\nsurface carries TA_FUNC_FLG_STREAM; servers and the stream bench\nregenerated (ta_bench_stream: HMA update ~8ns, ~4x faster than batch@last).",
          "is_bot": false,
          "headline": "feat(hma): stream support via dual-mode per-arm buffer union (#141)",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-23T23:07:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "728f8130c65edb21dfbadbd831b1feeaa9b085b6",
          "body": "HMA(n) = WMA(2*WMA(price,n/2) - WMA(price,n), sqrt(n)), both derived\nperiods TRUNCATED per Alan Hull's own Integer() (Tulip and pandas-ta agree;\nStockCharts rounds -- a visibly different line, documented in hma.md and\npinned by n=7/8 convention tests). Default 20 is the author's, and a period\nwhere \n[…]\n, #141\n(streaming: recognition unlocked, per-arm buffer union in the stream\nemitters remains), #142 (pre-existing WMA divider int overflow at\np >= 65536, inherited deliberately for bit-compatibility).",
          "is_bot": false,
          "headline": "feat(hma): Hull Moving Average + TA_MAType_HMA, fused single-pass (#139)",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-23T16:34:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fed29d3e4d2b24cc123be14d652d16121e86a1c7",
          "body": null,
          "is_bot": true,
          "headline": "Update dist package (from ubuntu-latest)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-23T07:40:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9f551684f8ee46e1f4afb6be4854300ae27a95a9",
          "body": null,
          "is_bot": true,
          "headline": "Update dist package (from windows-2022)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-23T07:33:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "80b70d156ce55b4044f0137007308242826628d0",
          "body": "…' term\n\nIntro paragraphs described the batch API first; now purpose -> mechanism ->\nguarantee, with batch as the closing contrast. Replace 'handle' with\n'stream' throughout (matches the actual type, e.g. TA_SMA_Stream) on the\nC, Rust and Java pages; fix a stale '*s is NULL' comment in the C example.",
          "is_bot": false,
          "headline": "docs(website): streaming intros lead with streaming; unify on 'stream…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-23T00:41:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7eb5bca6e81747f4f3968cde2cae2e5402491a1e",
          "body": "…129)\n\nBoth ids were accepted by TA_SetUnstablePeriod() but never read by any\ncomputation (0 reads at v0.6.4 and reference-pre-cutover): ADXR and\nSTOCHRSI follow the unstable period of their internal ADX and RSI. Renamed\nto TA_FUNC_UNST_UNUSED_1 / _UNUSED_22 with values preserved (the MFI/IMI\npreced\n[…]\ne two ids everywhere; the website\nunstable-period list falls to 20 entries automatically.\n\nOutput is bit-identical by construction (fuzz-064 green); full --codegen\nsweep 161 funcs x 4 languages green.",
          "is_bot": false,
          "headline": "fix(api): retire inert TA_FUNC_UNST_ADXR and TA_FUNC_UNST_STOCHRSI (#…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-22T19:39:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0586205b88ef9639e97e20e88b82d66fd23a3867",
          "body": "The FuncUnstId emitter (ta_defs.rs) drops the gen_code-era /* NNN */\ncomment format and writes TA_MAType-style explicit initializers, asserting\nvalues are contiguous from 0 (Java/Rust backends index by declaration\norder). Same treatment hand-applied to TA_RetCode, TA_Compatibility,\nTA_RangeType and TA_CandleSettingType. Values unchanged; no ABI change.\nAlso documents TA_Compatibility as deprecated.",
          "is_bot": false,
          "headline": "refactor(include): explicit = N values for every ta_defs.h enum",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-22T19:39:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df28ca3750ad90776c841a968c98fbae271fd840",
          "body": null,
          "is_bot": true,
          "headline": "Update dist package (from ubuntu-latest)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-22T07:44:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1a70c72c0df9e8feaaac7d465aa20abfc9ae7e10",
          "body": null,
          "is_bot": true,
          "headline": "Update dist package (from windows-2022)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-22T07:35:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d784e9f2a1a39dc4a30a38307548ffcc58ffcac8",
          "body": "The 0.8.1 entry scoped NATR to startIdx > lookback; the zero-close\noutReal[0] gap also hits ordinary full-range calls (ta-lib-python#653).\nSplit the IMI unstable-period note onto its own line.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(changelog): #98 NATR zero-close gap affects full-range calls too",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-22T01:43:04Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "9bf176fc25a0fabbfe034488bf4c0fc99a62a6b7",
          "body": "TA_REALBODY/TA_UPPERSHADOW/TA_LOWERSHADOW/TA_HIGHLOWRANGE in ta_utility.h read\ntheir input arrays with no cast. In a TA_S_CDL* body those arrays are const\nfloat[], so TA_CANDLERANGE/TA_CANDLEAVERAGE compute the range in float and round\nbefore it widens into the double accumulator -- breaking PR #33'\n[…]\nregtest so the autotools dist nightly covers it.\n\nVerified: bare ./ta_regtest (VARIANT gate 167 funcs x 31104 vectors bit-identical\n+ new test green); fuzz-064 PASS, 0 failures.\n\nCo-authored-by: MF,CC",
          "is_bot": false,
          "headline": "fix(ta_func): compute candle range in double inside TA_S_ bodies (#138)",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-22T00:07:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "99826e3ac839576712de5ddd936220d5af0842f0",
          "body": null,
          "is_bot": true,
          "headline": "Update dist package (from ubuntu-latest)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-21T23:33:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "10672914575e89c43d1b2b5c19ad30cd9bdc2439",
          "body": null,
          "is_bot": true,
          "headline": "Update dist package (from windows-2022)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-21T23:26:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cf376135e2dbc784de722ad00e154e1d4d191564",
          "body": "…tops reading garbage\n\nThe new VARIANT gate's build_regime() is the first code to read\nTA_History.openInterest and trusts the struct's \"unused arrays are NULL\"\ncontract, but testTAFunction_ALL and test_codegen_with_simulator never set the\nfield (the fuzz histories already do). On Linux the stack slo\n[…]\n see\nuninitialized reads): the poison build SIGSEGVs at test_variants.c:368 and passes\nclean with the initializer. Harness only; no library code changes.\n\nCo-authored-by: MF,CC <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(ta_regtest): NULL-init history.openInterest so the variant gate s…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-21T23:18:02Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "190aaf1e420821bbf4a9e113a11ab5ac064c532c",
          "body": "…every slot (#137)\n\nvariant_frame::flat_inputs classified inputs by matching ParamType::Price -- an\narm that never fires, because parser::yaml expands a price bundle into Real\ninputs long before any backend sees it. Every price component therefore fell\nthrough to the Real arm and was emitted as TA_V\n[…]\nippy --all-targets clean, ta_regtest --codegen green across\nall four languages, and the full variant sweep (167 functions x 31104 vectors)\nbit-identical on the corrected inputs.\n\nCo-authored-by: MF,CC",
          "is_bot": false,
          "headline": "fix(ta_regtest): feed the variant gate real OHLC bars, not volume in …",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-21T21:41:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0fac748036faa096ea38df696ad1a33e74836f99",
          "body": "…the price bundle (#135)\n\nA price bar is declared once and used two ways. `ta_abstract` describes it as a\nsingle TA_Input_Price parameter named `inPriceHLC` whose flags word names the\ncomponents; the functions themselves take one array per component --\nTA_STOCH(startIdx, endIdx, inHigh, inLow, inClo\n[…]\n--codegen green across all four languages\n(including test_abstract's paramName comparison), 338 doctests, cargo doc\nwarning-free, and a fresh generate leaves the tree unchanged.\n\nCo-authored-by: MF,CC",
          "is_bot": false,
          "headline": "docs(ta_codegen): document the arrays a function is called with, not …",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-21T21:21:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "08e4e5172ea2f20ad01378bd3a198ead5eca40ae",
          "body": "The clippy gate is a hard CI step and variant_frame.rs landed in 7359f7ad\nwithout ever being run through it -- I built and tested the generator but not\n`cargo clippy --all-targets -- -D warnings`, so 7 pedantic errors reached dev.\n\nReal fixes:\n- map(...).unwrap_or(...) -> map_or(...)\n- `n - 1` as a \n[…]\nentical, so no downstream artifact\nmoves. Verified: both clippy steps clean, generator tests, the generated\ncrate's 338 doctests, and a fresh generate leaves the tree unchanged.\n\nCo-authored-by: MF,CC",
          "is_bot": false,
          "headline": "fix(ta_codegen): satisfy clippy pedantic in variant_frame (#137)",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-21T20:42:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7359f7ad95676d28ed24b917a6ee4883791243e6",
          "body": "…period 1 (#137)\n\nEvery function ships four times over -- TA_<N>, TA_<N>_Unguarded, TA_S_<N> and\nTA_S_<N>_Unguarded -- and nothing gated three of them generically. #137 reported\nthis for the six post-cutover functions the frozen-reference sweep skips; the\nhole is wider than that, and was demonstrate\n[…]\n; --codegen all four languages; --xlang-hash\n(192942 cases, 0 mismatches); ASan+UBSan clean; -Wall -Wextra clean;\ncheck-source-lists; a fresh generate leaves the tree unchanged.\n\nCo-authored-by: MF,CC",
          "is_bot": false,
          "headline": "test(regtest): bitwise four-variant parity gate, and fix TA_S_WMA at …",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-21T20:17:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ab484ccbd3fd7d18eeb35bafafa9426bbc1d46cd",
          "body": "CMF landed as the 167th streamable function without updating the ratchet,\nso the dev nightly's generator-test job has been failing since 48e0170d.\nThe paired `emitted == total` assertion was already green — every\nstreamable function does emit its Java stream section.\n\nCo-authored-by: MF,CC <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "test(java): bump the stream emit ratchet to 167 for CMF (#134)",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-21T18:57:05Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "519311abc6d170b5e9f9f6a8a50ed42f5d141dc6",
          "body": "The example bars put close at the exact midpoint of high/low, so the\nmoney-flow multiplier was identically zero and the AD/ADOSC/CMF doctests\ncould not fail. Measured over all 167 doctests: 62 produced an output that\nno implementation error could change (52 CDL all-zero, AD/ADOSC/CMF\nall-zero, ACOS/\n[…]\necuted them.\n\nThe generated diff is rustdoc comments only -- no library code changes.\n338 doctests pass; sabotaging CMF's divisor makes its doctest fail.\n\nCo-authored-by: MF,CC <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(rust): make the generated doctests able to fail (#136)",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-21T18:44:14Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d661b9ae084709184c5b3ad76d776e6961a4b442",
          "body": "…en/input\n\nReworks the previous commit's hint into the generator's own idiom and extends\nit past MIN/MAX, then narrows it to the targets where it was measured to pay.\n\n- New Statement::UnrollHint IR node. `TA_UNROLL(n)` is written once per loop in\n  ta_codegen/input/<f>/<f>.c, so the source of truth\n[…]\n frozen-reference codegen\nverification passes for all 4 languages / 161 functions, and the generated\nRust/Java/.NET sources are byte-identical to before.\n\nCo-authored-by: MF,CC <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(minmax): express the rescan unroll as TA_UNROLL(n) from ta_codeg…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-21T17:19:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0365a69a37f5faaf2e3190881774c9ff7670c29e",
          "body": "Brings in dexhunter's original work so the contribution stays in the history.\nThe follow-up commit reworks the hint into the generator's TA_UNROLL(n) idiom,\nextends it to the other rescan functions, and restricts it to the compilers\nwhere it was measured to pay.",
          "is_bot": false,
          "headline": "Merge PR #128: unroll the expired-extreme rescans in MIN/MAX",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-21T17:11:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48e0170d4c41ff8abd916b3826667d2a4b2b31de",
          "body": "The n-bar sum of Chaikin's money flow volume over the n-bar sum of volume.\nGroup Volume Indicators, default period 20, lookback n-1, streamable.\n\nThe per-bar multiplier is written exactly as ta_AD.c's, deliberately. Tulip's\norder, (v*num)/den, would instead make our output bit-identical to that orac\n[…]\nMF examples are all-zero and cannot fail) and #137\n(post-cutover functions reach no *_Unguarded or TA_S_* variant -- three\nsabotages of TA_S_CMF passed the entire suite before test_cmf.c was widened).",
          "is_bot": false,
          "headline": "feat(cmf): Chaikin Money Flow (#134)",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-21T16:52:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "65e49d72ab77aa830e14e0c6d48e51296be09edd",
          "body": "The earlier approach fast-pathed monotonic windows, which are atypical in normal TA-Lib input. This targets the common random-walk case instead without changing the algorithm or adding work to the per-sample tight loop.\n\nMIN and MAX already cache the current extreme and rescan only when it expires. \n[…]\n ASan plus UBSan, generator tests, clippy, and idempotent regeneration. Wall-clock samples were inconclusive and are not claimed.\n\nFixes TA-Lib/ta-lib-python#715\n\nCo-Authored-By: Aiden <aiden@weco.ai>",
          "is_bot": false,
          "headline": "perf(minmax): unroll expired-extreme rescans",
          "author_name": "Dex Hunter",
          "author_login": "dexhunter",
          "committed_at": "2026-07-21T11:29:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cae231d8f0764c92d8ba7712d0c46a017cf1a117",
          "body": null,
          "is_bot": true,
          "headline": "Update dist package (from ubuntu-latest)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-21T07:40:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ba3f8a516e8350a6cd35f9e538ec83ce86f39f9e",
          "body": null,
          "is_bot": true,
          "headline": "Update dist package (from windows-2022)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-21T07:34:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb8bf53aec1796833d749fe0ca2691a50737b41b",
          "body": "escape_prose escaped every `[` outside a code span, which is right for prose\nlike inReal[i] but also mangled real markdown links, stranding the URL as plain\ntext. The shipped crate rendered a literal\n\n  \\[TradingView](https://www.tradingview.com/...)\n\nand the dangling URL tripped rustdoc's bare_urls\n[…]\neral text into a live broken link. Site-absolute destinations are\nrebased onto https://ta-lib.org/.\n\nVerified in the rendered HTML rather than by warning count — a silenced lint is\nnot a working link.",
          "is_bot": false,
          "headline": "fix(rustdoc): keep genuine inline links intact in the generated docs",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-21T05:31:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "09888183369784ab9f32d8a96a9fba4609589529",
          "body": "A generated page described what each parameter meant but never what values it\naccepted: 0 of 166 showed a default or a range, and the reader had to open the\nYAML. docs/ta_codegen_input_doc.md has always specified the split — numbers live\nin <name>.yaml and are injected at render — but only the prohi\n[…]\ndles\ninto inHigh/inLow/inClose, so the authored `inPriceHLC` has nothing to join\nagainst; carrying the bundle on FuncDef is the prerequisite and is left for the\nfollow-on, recorded in the status note.",
          "is_bot": false,
          "headline": "feat(docs): inject the YAML parameter metadata at render time (#132)",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-21T05:31:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "df6f59ec1676e044f92c9c2b192aa50e14f9aa8e",
          "body": "VWMA (#131) added the 166th stream-flagged function without touching the\npin, so the suite has been red since 5e50d7f4. The count is deliberately\nhand-maintained, and this is the deliberate update.",
          "is_bot": false,
          "headline": "test(java): move the stream emit ratchet to 166",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-21T05:30:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eaf3a1f64515f5b7555ce6deb07e56d3358413ed",
          "body": "…d oracle\n\nThey were skipped at FUNCTION level for #118, so all three had zero differential\ncoverage vs 0.6.4 -- and the summary reported that as '3 case(s)', understating a\n~3000-comparison gap by three orders of magnitude.\n\nThe exclusion is only justified where 0.6.4's cancelling E[x^2]-mean^2 for\n[…]\nannot:\nit restores agreement with 0.6.4. That direction stays pinned by test_stddev.c\nand the BBANDS stable-variance test.\n\nAlso corrects the stochrsi-skipped label, which counts functions, not cases.",
          "is_bot": false,
          "headline": "test(fuzz-064): compare VAR/STDDEV/BBANDS where 0.6.4 is still a vali…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-21T03:36:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cec94326f32b0dc02d17dd206f704abeafed59d6",
          "body": "Bollinger specifies 20 periods / 2 standard deviations. The 5 came from\nTA_DEF_UI_TimePeriod_5_MINIMUM2, a generic descriptor shared with STDDEV/VAR/\nBETA/T3, never a decision about Bollinger Bands -- the deviation defaults (2.0)\nand MA type (SMA) were set correctly from the same recommendation, and\n[…]\nr changes only for callers relying on the abstract-layer\ndefault. Gates green: ta_regtest, --codegen 161/161 x3, --xlang-hash 0\nmismatches, fuzz-064 0 failures (BBANDS already excluded there by #118).",
          "is_bot": false,
          "headline": "fix(bbands): default optInTimePeriod 5 -> 20 (#133)",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-21T02:55:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fae2c79c4467b82ce2be32b382d97bc3782e215c",
          "body": null,
          "is_bot": false,
          "headline": "docs(vwma): drop the cross-implementation default note",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-21T02:31:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4be71d3aa8ac755c3a028c384b445805e30c2e4e",
          "body": "… inReal\n\nThe unconditional staging buffer from 3f2f804e cost ~21% at 100k bars (the\nonly real MAVP slowdown in history — a fixed-flag bisect across ten commits\nfrom reference-pre-cutover shows everything else flat and bit-identical; the\nta_bench \"+11% vs cref\" that prompted the audit was mean-of-50\n[…]\n BBANDS' tempBuffer guard.\n\nInterleaved bench: conditional == pre-#130 baseline. In-place path stays\nbitwise-correct (193-pair gate, ASan); MAVP green on all four languages\nincl. stream + OpenAndFill.",
          "is_bot": false,
          "headline": "perf(mavp): stage the #130 in-place defence only when outReal aliases…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-21T02:25:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d72e41571d8ef090ef739f194fbc50da8e3e9ed6",
          "body": "It also fed the page description and the rustdoc.",
          "is_bot": false,
          "headline": "docs(vwma): drop the VWAP contrast from the summary",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-21T02:14:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cad531db586b08296c8645dab06e4032e27e8d2e",
          "body": "Sabotage-proven: reintroducing a guard that returns 0.0 fails this leg and\nnothing else. Also trims the flat-price comment -- agreement there is to a few\nULP in every implementation (pandas-ta 9.1e-12, Tulip 6.5e-11, ours 8.0e-11),\nso it needed a measurement, not an essay.",
          "is_bot": false,
          "headline": "test(vwma): pin the documented NaN on an all-zero-volume window (#131)",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-21T01:46:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "582db41e05d52a1e82556b42d5c3769a015a3b61",
          "body": "Closes the gap between what #131's verification plan claimed and what was\nactually implemented.\n\n- Tulip Indicators 0.9.2 checked-in vectors as deterministic small cases:\n  tests/extra.txt:320 (vwma 4) and tests/untest.txt:466 (vwma 5). Only extra.txt\n  is independently derived -- its header says th\n[…]\n were re-verified live against pandas-ta-classic 0.6.52\n(max rel 4.739e-16) and cross-checked against the Tulip server (max rel\n4.739e-16) -- they are genuinely externally derived, not self-generated.",
          "is_bot": false,
          "headline": "test(vwma): add the second oracle and the flat-price case (#131)",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-21T01:46:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5e50d7f4b428b01e6fd4a026489c905ff87d5431",
          "body": "Sum(P*V)/Sum(V) over a trailing window. Overlap Studies, inReal + volume\n(the OBV input shape, so a source other than close is expressible), lookback\nperiod-1, streaming from day one.\n\nKeeps the redundant /n on both sums and mirrors TA_SMA's add-new / snapshot /\nsubtract-old order, which makes it BI\n[…]\nr. abstract_volume_view() keys off the existing\nTA_IN_PRICE_VOLUME flag and is applied to both the in-process call and the JSON\nrequest so the two sides cannot diverge. Benefits every volume function.",
          "is_bot": false,
          "headline": "feat(vwma): Volume Weighted Moving Average (#131)",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-21T01:46:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3f2f804e21348022a0b1105fed16280deb3c93b5",
          "body": "…functions (#130)\n\nReusing an input buffer as one of the outputs is a documented guarantee\n(\"All TA functions support this\") but returned TA_SUCCESS with wrong values:\n\n- LINEARREG/_ANGLE/_SLOPE/_INTERCEPT/TSF: the O(1) sliding recurrence read\n  the departing value after the priming write clobbered \n[…]\n path. Red on exactly the 8 functions before the fix.\n\nASan/UBSan green, --codegen 161/161 x4 languages, stream 14840 legs\nbit-exact, OpenAndFill bitwise, fuzz-064 0 failures, xlang-hash 0 mismatches.",
          "is_bot": false,
          "headline": "fix(func): in-place (input==output) calls returned wrong values in 8 …",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-21T01:20:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2af1dca199ef0e7b29892349f47596480cf710e3",
          "body": "…ance trap\n\nGroundwork for the new-indicator wave (board proposals #21-#48). Each of these\nwould have let a future function ship with a gate that looked green while\ntesting nothing.\n\n- checkOracleValue(): shared |got-want| <= absTol + relTol*|want| comparison for\n  external-oracle golden values, rep\n[…]\nual 165; count them with TA_ForEachFunc instead.\n\nAll three sabotage-proven: the perturbed golden, the flipped cap and the\nmutated count each turn the run red, and the run is green with them restored.",
          "is_bot": false,
          "headline": "test(regtest): close three gate-vacuity holes + a zero-crossing toler…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-20T21:19:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b0c8ff23809a5fa6830b634cee498136e7e09216",
          "body": "Updates the four generator-side header sources (c.rs, rust_lang.rs,\nta_abstract_c.rs, ta_retcode.c.template) plus the hand-written headers;\nalso brings the 43 legacy Java files forward from 1999-2006/2007.",
          "is_bot": false,
          "headline": "chore: bump BSD license copyright year to 2026",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-20T19:18:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "38148302ad5d89e3e9b6cb4260e37f83bb406274",
          "body": null,
          "is_bot": true,
          "headline": "Update dist package (from ubuntu-latest)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-20T18:20:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1f3404024ad0deec520feb58983b41b35258880e",
          "body": null,
          "is_bot": true,
          "headline": "Update dist package (from windows-2022)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-20T18:13:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "46a1bce48ef6c0961c2e3b0493a240ac0167abc6",
          "body": "Rust and Java never ship a way to select a compatibility variant: the enum is\ncrate-internal/package-private, the setter and getter are gone, and the private\nfield stays pinned to Default. The variant branches in the generated indicators\nare dead code pending their removal. C keeps the deprecated TA\n[…]\nsabotage-proven: perturbing the Metastock seeding in CMO fails\nthe compat=1 leg.\n\nMetastock notes dropped from the EMA/RSI/MACD/CMO pages, the crate docs/README\nand the rust/java/stream website pages.",
          "is_bot": false,
          "headline": "refactor(rust,java): drop the public compatibility (Metastock) API",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-20T17:54:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "75318b7e0e7f0f790825c9ca33a756690e54a2b9",
          "body": "Audited every open/deferred item in docs/canonical-cutover-runbook.md\nagainst dev, main and v0.7.1: all complete. Stage 6-B (the one stage\nwithout a DONE marker) was delivered by PR #92 + 97e9f89a; the XML\nNUL-termination and large-period gaps are fixed; the server_verify and\ntag-portability deferra\n[…]\ncation-runbook.md section 4\n\nAlso drops the two pointers into the deleted file and a now-false\nNVI/PVI comment in backends/mod.rs.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: delete the canonical-cutover runbook (cutover shipped in 0.7.1)",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-20T17:21:30Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "80411e03301ce609aea5d4e48ce20b532d8f9c6d",
          "body": null,
          "is_bot": false,
          "headline": "docs(changelog): 0.8.1 entry updates + deprecate TA_SetCompatibility",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-20T15:00:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e7a528a00ada4629481c26e8563ddc23146d8be2",
          "body": null,
          "is_bot": true,
          "headline": "Update dist package (from ubuntu-latest)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-20T08:05:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a7842d1cd3699d1b53a094f268652a6207a0ac75",
          "body": null,
          "is_bot": true,
          "headline": "Update dist package (from windows-2022)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-20T07:58:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c99845aec0e53c6fdd3a503fea7300ea0cdb9d23",
          "body": "… on the C API page\n\n4.3: TA_S_ is a prefix, not a suffix; fix plurals and \"allows to digest\";\nstate the guarantee precisely (same output, bit-for-bit — verified by the\nregression gates); align the two signature blocks.\n\n4.4: fix grammar throughout (linked against, thread-safe, single-threaded,\n\"prior to exit\"); mirror 3.1's TA_Shutdown wording.\n\n3.0: \"declared in headers in include/*.h\" -> \"in the include/*.h headers\".",
          "is_bot": false,
          "headline": "docs(website): copyedit float-vs-double (4.3) + multi-threading (4.4)…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-20T01:56:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f9d5e75faf510b8b5b2d5a2242be29a7a5a24511",
          "body": "…le period intro (4.2)\n\n4.1: drop the duplicated \"at runtime\"; replace \"without knowing it a\npriori\" with the concrete claim (call a function whose signature was\nunknown at compile time).\n\n4.2: reword around the actual phenomenon — recursive functions' first\noutputs depend on the starting point, an effect that decays until the\noutput is stable — instead of the \"function having memories\" framing.\nFixes the grammar errors and links the two API calls to the #api anchor.",
          "is_bot": false,
          "headline": "docs(website): copyedit abstraction-layer tail (4.1) + rewrite unstab…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-20T01:32:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4822d6c33a90ce2beac170c6146aab000e99f638",
          "body": "…n the C API page\n\n3.3: fix grammar in the intro and lookback paragraphs, scope the Range\nMatching waste example to startIdx=0, and state the Exact Allocation pro\nas its result.\n\n4.1: the opener implied by-name calling is what direct calls do — it is\nwhat ta_abstract enables; reword to hard-coded vs runtime lookup. Lead the\nuse-case list with wrapper generation, make the charting-app bullet\nconcrete, and point the closing off-ramp at both batch and streaming.",
          "is_bot": false,
          "headline": "docs(website): copyedit Output Size (3.3) + abstraction layer (4.1) o…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-20T01:10:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b0e2aeaead7c0bece1606e56d1c0f4e45059fc6a",
          "body": "…PI page\n\nFix grammar and simplify wording throughout: the calling-pattern intro and\nits four parameter-group bullets, both TA_MA examples and their result\nexplanations, the single-bar EMA example, and the in-place buffer notes.\n\nAlso fix a wrong value in the range example: with startIdx=125 and\nendIdx=225, outNbElement is 101, not 100 — endIdx is inclusive (now stated\nexplicitly). Verified against the compiled library.",
          "is_bot": false,
          "headline": "docs(website): copyedit the batch-processing section (3.2) of the C A…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-20T00:49:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f38e132f6531f8e1bbf8135cacb6c0910e2ca8f6",
          "body": "…sources\n\nThe pre-cutover generators re-preprocessed the C source with _MANAGED /\n_JAVA / _RUST defined; all bindings are now generated natively by\nta_codegen, so only the plain-C branch was ever compiled. Remove the dead\narms and the macro scaffolding:\n\n- ta_defs.h: plain `typedef enum` for all six\n[…]\n for the frozen\n  reference-pre-cutover tag.\n\nPreprocessed output is token-identical (gcc -E diff), regtest passes\n161 functions x 4 languages against the frozen reference, and generate\nis idempotent.",
          "is_bot": false,
          "headline": "refactor: drop the dead multi-language preprocessor layer from the C …",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-19T21:02:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a7892a23601b14673f32548c134c122ad158bc38",
          "body": "Intro: drop the \"Part of the C/C++ Core API\" breadcrumb so the page can later\ncover the Rust/Java bindings too, and say plainly that \"unstable period\" names\na setting rather than the problem it addresses.\n\nAPI section: \"family of functions\" was wrong -- each TA_FuncUnstId value maps\nto exactly one f\n[…]\n, ...) as a\ncaller would write them, instead of bare suffixes with the prefix explained in\nthe lead-in.\n\nAlso drop \"in principle\" and the last use of \"transient\", a term used nowhere\nelse on the page.",
          "is_bot": false,
          "headline": "docs(website): unstable period — clarify the API section, list the C ids",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-19T17:41:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c3fc0a5acb4d84a2ac625f5ef5d9e8014bfc7041",
          "body": "…te pages\n\nThe unstable-period page listed the 22 TA_FuncUnstId functions by hand, so it\ncould silently drift from the enum it documents. Generate that list instead.\n\nNew backend docs_patch.rs, a sibling to docs_site.rs. The split is deliberate:\ndocs_site OWNS whole files under website/src/functions\n[…]\n3) and reverts cleanly; deleting a\nmarker panics with the marker name; a full generate on a clean tree produces no\nother churn; a production VuePress build renders the region with no visible\nartifact.",
          "is_bot": false,
          "headline": "feat(generator): maintain generated regions inside hand-written websi…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-19T16:28:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dc129b3f1512044527a3112942d795122be84720",
          "body": "Explain in \"Why it exists\" that the warm-up distortion is inherent to the\nalgorithms rather than specific to TA-Lib: every implementation has to seed\nthe recursion somewhere. What TA-Lib adds is the ability to scrub those\nearly values on every function call.\n\nAdd \"What to do\" enumerating the three d\n[…]\nFUNC_UNST_ADX`, `ADXR`, ...) and so read as a typo. State the\nprefix once in the lead-in and list every name bare. The 22 names were\nverified to match the FuncUnstId enum in include/ta_defs.h exactly.",
          "is_bot": false,
          "headline": "docs(website): unstable period — add a \"What to do\" section",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-19T15:43:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cecaaf303b7762c8d4426d1fbe6edbab7381a8d9",
          "body": "vuepress-theme-hope renders a single `.vp-toc-placeholder` and repositions\nit by breakpoint: at >= $pc (1440px) `#toc` is absolutely placed as the\nright-hand rail, below that it collapses into a box above the content. The\ntheme leaves the placeholder `position: sticky` at every width, so on\nnarrower\n[…]\noutrank the theme: its toc.scss is imported by the TOC\ncomponent, so its injection order relative to this file differs between dev\nand build; equal specificity would make the override order-dependent.",
          "is_bot": false,
          "headline": "fix(website): stop \"On this page\" floating over the content",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-19T15:43:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "39c583f1777a52a3a3d4a45af4d715f2f5317cab",
          "body": null,
          "is_bot": true,
          "headline": "Update dist package (from ubuntu-latest)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-19T04:46:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2582d647d3c856e9ce6c689dfc1e730af08fe8c7",
          "body": null,
          "is_bot": true,
          "headline": "Update dist package (from windows-2022)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-19T04:38:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c3dc5c125fda3be250a95ae06116d55a484fe3a8",
          "body": "Core page: rename 3.0 to 'Calling into TA-Lib'; add a 3.1 'Initialize and\nShutdown' section (TA_Initialize/TA_Shutdown) before batch processing; move\nthe 'all public functions in ta_func.h' pointer under the 3.0 title; rename\n'direct call' to 'batch processing' consistently (the direct-vs-abstractio\n[…]\n Core\npage as a section instead of a separate page).\n\nDeprecate TA_SetCompatibility: undocumented on the site and marked deprecated\nin include/ta_func.h (via the generator source in ta_abstract_c.rs).",
          "is_bot": false,
          "headline": "docs(website): C API restructure + deprecate TA_SetCompatibility",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-19T04:32:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0d2807ae256a5a63cea9ff5d294b7edc6b426f8d",
          "body": "Split the language docs into independent pages — Rust Core API, Rust\nStreaming API, Java Core API, Java Streaming API — each headed by a\n'Not yet released — estimated Q1 2027' banner. The C/C++ Streaming page\nis now C-only (the Rust and Java sections that had accreted onto it are\nremoved). Sidebar regrouped into collapsible C/C++, Rust, and Java API\ngroups. Every code example was fact-checked against the generated\nRust/Java source.",
          "is_bot": false,
          "headline": "docs(website): per-language API pages (Rust/Java Core + Streaming)",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-18T23:08:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "239dcb7782bb3af43ca1b8c12994288f52fddb41",
          "body": null,
          "is_bot": true,
          "headline": "Update dist package (from ubuntu-latest)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-18T21:42:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d9f24356ac27d2c6841dec016e8c330b49e4af7",
          "body": null,
          "is_bot": true,
          "headline": "Update dist package (from windows-2022)",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-18T21:38:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "352b6ff75ef961bbfd9ea8a8cecdff3601d2f506",
          "body": "…ool_assert_comparison\n\nThe dev-nightly clippy gate runs `--all-targets -D warnings`, which promotes\nthis warning to an error; use a plain assert! so the gate stays green.",
          "is_bot": false,
          "headline": "test(java-stream): assert! over assert_eq!(_, true) — clears clippy b…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-18T21:31:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a060db6f81d651032d68bb112242824b6c381245",
          "body": "# Conflicts:\n#\tta_codegen/generator/src/backends/ta_abstract_c.rs\n#\tta_codegen/generator/src/server_gen.rs",
          "is_bot": false,
          "headline": "Merge branch 'java-stream' into dev",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-18T21:22:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "62e5e1e858e1d0934d89096ade417355b4c3290a",
          "body": "…elf-check live\n\ncargo clippy --lib: 0 errors, 0 warnings (dev's 4052b053 cherry-picked for the\nparallel pre-existing fixes; the rest were this branch's). Final gates: 580\ngenerator tests green; all-language ta_regtest --codegen green with the Java\nstream pass at 165 functions / 14840 bit-exact legs\n[…]\ne new stream-pass fuzz-port self-check reporting 9/9 shapes bit-identical\nfor both porting servers (Rust, Java). PrefixProbe confirms TA_MA/TA_MAVP\nrejects now carry their own stable message prefixes.",
          "is_bot": false,
          "headline": "fix(java-stream): clippy-clean generator, verified prefix fix, fuzz s…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-18T18:57:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c0b5a13b2fe57401a05c494e895a700dab6f568c",
          "body": "…er_gen.rs / c_stream.rs\n\nPre-existing clippy::pedantic failures surfaced by the dev nightly's clippy gate\n(introduced by the Rust streaming API commits 9706dc61/fa85c6f6, never clippy-checked\nbefore landing on dev). Fixes: single_match/single_match_else -> if/if-let, unused\nout_args, into_iter() ->\n[…]\nrgo test (267+224+... all green) and a full `generate --backend=rust`\nconfirm the generated output is byte-identical before/after.\n\n(cherry picked from commit 4052b0534ad761a8545f7c011f7cbd3e2fe5f7eb)",
          "is_bot": false,
          "headline": "fix(generator): clear clippy pedantic errors in rust_stream.rs / serv…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-18T18:52:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0d216a3d2706d4614ab87f4eed65484daa1eeec8",
          "body": "…ning\n\nDispatch/period-bank opens precheck their OWN lookback before delegating, so\ninsufficient-history rejects always carry the caller's stable \"TA_<NAME>\nopen:\" prefix (previously a TA_MA short-history reject surfaced as\n\"TA_SMA open:\"). flag_sync: pre-add start_dependent (dev #127), panic on\nunp\n[…]\ncompiles fuzz_data.h directly). Dedup sv input-array maps and the\nper-tier base field lists; InsufficientHistoryException server copy moves to\na template file; build.xml gains the stream-smoke target.",
          "is_bot": false,
          "headline": "fix(java-stream): review findings — prefix-stable rejects, gate harde…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-18T18:51:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4052b0534ad761a8545f7c011f7cbd3e2fe5f7eb",
          "body": "…er_gen.rs / c_stream.rs\n\nPre-existing clippy::pedantic failures surfaced by the dev nightly's clippy gate\n(introduced by the Rust streaming API commits 9706dc61/fa85c6f6, never clippy-checked\nbefore landing on dev). Fixes: single_match/single_match_else -> if/if-let, unused\nout_args, into_iter() ->\n[…]\nems_after_test_module) to the end of the file.\n\nNo behavior change: cargo test (267+224+... all green) and a full `generate --backend=rust`\nconfirm the generated output is byte-identical before/after.",
          "is_bot": false,
          "headline": "fix(generator): clear clippy pedantic errors in rust_stream.rs / serv…",
          "author_name": "mario4tier",
          "author_login": "mario4tier",
          "committed_at": "2026-07-18T15:48:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        }
      ],
      "releases_count": 6,
      "commits_last_year": 966,
      "latest_release_at": "2026-07-03T17:36:45Z",
      "latest_release_tag": "v0.7.1",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 19,
      "days_since_latest_release": 23,
      "mean_days_between_releases": 174.2
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 37,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": []
    },
    "popularity": {
      "forks": 291,
      "stars": 1638,
      "watchers": 30,
      "fork_history": {
        "days": [
          {
            "date": "2016-12-22",
            "count": 1
          },
          {
            "date": "2017-01-06",
            "count": 1
          },
          {
            "date": "2017-08-22",
            "count": 1
          },
          {
            "date": "2018-01-27",
            "count": 1
          },
          {
            "date": "2018-03-11",
            "count": 1
          },
          {
            "date": "2018-03-12",
            "count": 1
          },
          {
            "date": "2018-08-28",
            "count": 1
          },
          {
            "date": "2018-09-18",
            "count": 1
          },
          {
            "date": "2018-10-04",
            "count": 1
          },
          {
            "date": "2019-01-04",
            "count": 1
          },
          {
            "date": "2019-02-24",
            "count": 1
          },
          {
            "date": "2019-12-04",
            "count": 1
          },
          {
            "date": "2020-06-15",
            "count": 1
          },
          {
            "date": "2020-11-17",
            "count": 1
          },
          {
            "date": "2020-11-19",
            "count": 1
          },
          {
            "date": "2021-01-10",
            "count": 1
          },
          {
            "date": "2021-02-03",
            "count": 1
          },
          {
            "date": "2021-02-15",
            "count": 1
          },
          {
            "date": "2021-04-25",
            "count": 1
          },
          {
            "date": "2021-05-08",
            "count": 1
          },
          {
            "date": "2021-10-13",
            "count": 1
          },
          {
            "date": "2022-01-25",
            "count": 1
          },
          {
            "date": "2022-04-29",
            "count": 1
          },
          {
            "date": "2022-06-28",
            "count": 1
          },
          {
            "date": "2022-07-09",
            "count": 1
          },
          {
            "date": "2023-01-16",
            "count": 1
          },
          {
            "date": "2023-02-03",
            "count": 1
          },
          {
            "date": "2023-02-13",
            "count": 1
          },
          {
            "date": "2023-02-17",
            "count": 1
          },
          {
            "date": "2023-02-28",
            "count": 1
          },
          {
            "date": "2023-03-06",
            "count": 1
          },
          {
            "date": "2023-03-08",
            "count": 1
          },
          {
            "date": "2023-03-29",
            "count": 1
          },
          {
            "date": "2023-04-09",
            "count": 1
          },
          {
            "date": "2023-04-10",
            "count": 1
          },
          {
            "date": "2023-04-17",
            "count": 1
          },
          {
            "date": "2023-05-06",
            "count": 1
          },
          {
            "date": "2023-05-27",
            "count": 1
          },
          {
            "date": "2023-05-28",
            "count": 1
          },
          {
            "date": "2023-06-07",
            "count": 1
          },
          {
            "date": "2023-06-23",
            "count": 1
          },
          {
            "date": "2023-07-01",
            "count": 1
          },
          {
            "date": "2023-07-09",
            "count": 1
          },
          {
            "date": "2023-07-16",
            "count": 1
          },
          {
            "date": "2023-08-09",
            "count": 1
          },
          {
            "date": "2023-08-16",
            "count": 1
          },
          {
            "date": "2023-08-20",
            "count": 1
          },
          {
            "date": "2023-08-25",
            "count": 1
          },
          {
            "date": "2023-09-22",
            "count": 1
          },
          {
            "date": "2023-09-28",
            "count": 1
          },
          {
            "date": "2023-10-07",
            "count": 1
          },
          {
            "date": "2023-10-18",
            "count": 2
          },
          {
            "date": "2023-10-22",
            "count": 1
          },
          {
            "date": "2023-10-30",
            "count": 1
          },
          {
            "date": "2023-11-18",
            "count": 1
          },
          {
            "date": "2023-11-20",
            "count": 1
          },
          {
            "date": "2023-11-26",
            "count": 1
          },
          {
            "date": "2023-11-27",
            "count": 1
          },
          {
            "date": "2023-11-29",
            "count": 2
          },
          {
            "date": "2023-12-14",
            "count": 1
          },
          {
            "date": "2023-12-17",
            "count": 1
          },
          {
            "date": "2023-12-22",
            "count": 1
          },
          {
            "date": "2023-12-25",
            "count": 2
          },
          {
            "date": "2023-12-26",
            "count": 1
          },
          {
            "date": "2024-01-02",
            "count": 1
          },
          {
            "date": "2024-01-10",
            "count": 1
          },
          {
            "date": "2024-01-14",
            "count": 1
          },
          {
            "date": "2024-01-15",
            "count": 1
          },
          {
            "date": "2024-01-22",
            "count": 1
          },
          {
            "date": "2024-02-02",
            "count": 2
          },
          {
            "date": "2024-02-10",
            "count": 1
          },
          {
            "date": "2024-02-12",
            "count": 2
          },
          {
            "date": "2024-02-18",
            "count": 1
          },
          {
            "date": "2024-03-01",
            "count": 1
          },
          {
            "date": "2024-03-11",
            "count": 1
          },
          {
            "date": "2024-03-16",
            "count": 1
          },
          {
            "date": "2024-03-23",
            "count": 1
          },
          {
            "date": "2024-03-24",
            "count": 1
          },
          {
            "date": "2024-03-25",
            "count": 1
          },
          {
            "date": "2024-03-28",
            "count": 2
          },
          {
            "date": "2024-03-29",
            "count": 1
          },
          {
            "date": "2024-03-30",
            "count": 1
          },
          {
            "date": "2024-04-16",
            "count": 1
          },
          {
            "date": "2024-04-21",
            "count": 2
          },
          {
            "date": "2024-04-27",
            "count": 1
          },
          {
            "date": "2024-04-28",
            "count": 1
          },
          {
            "date": "2024-05-01",
            "count": 2
          },
          {
            "date": "2024-05-02",
            "count": 1
          },
          {
            "date": "2024-05-05",
            "count": 1
          },
          {
            "date": "2024-05-14",
            "count": 1
          },
          {
            "date": "2024-05-20",
            "count": 1
          },
          {
            "date": "2024-05-22",
            "count": 1
          },
          {
            "date": "2024-05-23",
            "count": 1
          },
          {
            "date": "2024-05-24",
            "count": 1
          },
          {
            "date": "2024-05-27",
            "count": 2
          },
          {
            "date": "2024-05-29",
            "count": 1
          },
          {
            "date": "2024-05-30",
            "count": 1
          },
          {
            "date": "2024-06-07",
            "count": 1
          },
          {
            "date": "2024-06-08",
            "count": 1
          },
          {
            "date": "2024-06-15",
            "count": 1
          },
          {
            "date": "2024-06-20",
            "count": 1
          },
          {
            "date": "2024-06-28",
            "count": 2
          },
          {
            "date": "2024-07-05",
            "count": 1
          },
          {
            "date": "2024-07-21",
            "count": 1
          },
          {
            "date": "2024-08-02",
            "count": 1
          },
          {
            "date": "2024-08-10",
            "count": 1
          },
          {
            "date": "2024-08-14",
            "count": 1
          },
          {
            "date": "2024-08-15",
            "count": 1
          },
          {
            "date": "2024-08-17",
            "count": 1
          },
          {
            "date": "2024-08-18",
            "count": 1
          },
          {
            "date": "2024-08-19",
            "count": 1
          },
          {
            "date": "2024-08-22",
            "count": 1
          },
          {
            "date": "2024-08-23",
            "count": 1
          },
          {
            "date": "2024-08-25",
            "count": 1
          },
          {
            "date": "2024-09-10",
            "count": 1
          },
          {
            "date": "2024-09-15",
            "count": 1
          },
          {
            "date": "2024-09-23",
            "count": 1
          },
          {
            "date": "2024-09-26",
            "count": 1
          },
          {
            "date": "2024-09-27",
            "count": 1
          },
          {
            "date": "2024-09-30",
            "count": 1
          },
          {
            "date": "2024-10-08",
            "count": 1
          },
          {
            "date": "2024-10-09",
            "count": 1
          },
          {
            "date": "2024-10-12",
            "count": 1
          },
          {
            "date": "2024-10-18",
            "count": 1
          },
          {
            "date": "2024-10-22",
            "count": 1
          },
          {
            "date": "2024-10-25",
            "count": 1
          },
          {
            "date": "2024-10-28",
            "count": 1
          },
          {
            "date": "2024-11-13",
            "count": 1
          },
          {
            "date": "2024-11-14",
            "count": 1
          },
          {
            "date": "2024-11-17",
            "count": 1
          },
          {
            "date": "2024-11-20",
            "count": 2
          },
          {
            "date": "2024-11-29",
            "count": 1
          },
          {
            "date": "2024-12-02",
            "count": 1
          },
          {
            "date": "2024-12-07",
            "count": 1
          },
          {
            "date": "2024-12-19",
            "count": 1
          },
          {
            "date": "2024-12-23",
            "count": 1
          },
          {
            "date": "2024-12-26",
            "count": 1
          },
          {
            "date": "2024-12-28",
            "count": 2
          },
          {
            "date": "2024-12-29",
            "count": 1
          },
          {
            "date": "2025-01-03",
            "count": 1
          },
          {
            "date": "2025-01-06",
            "count": 1
          },
          {
            "date": "2025-01-08",
            "count": 1
          },
          {
            "date": "2025-01-12",
            "count": 1
          },
          {
            "date": "2025-01-17",
            "count": 2
          },
          {
            "date": "2025-01-18",
            "count": 1
          },
          {
            "date": "2025-01-23",
            "count": 1
          },
          {
            "date": "2025-01-25",
            "count": 1
          },
          {
            "date": "2025-02-01",
            "count": 1
          },
          {
            "date": "2025-02-05",
            "count": 2
          },
          {
            "date": "2025-02-08",
            "count": 2
          },
          {
            "date": "2025-02-15",
            "count": 1
          },
          {
            "date": "2025-02-22",
            "count": 1
          },
          {
            "date": "2025-03-03",
            "count": 1
          },
          {
            "date": "2025-03-09",
            "count": 1
          },
          {
            "date": "2025-03-13",
            "count": 1
          },
          {
            "date": "2025-03-14",
            "count": 1
          },
          {
            "date": "2025-03-19",
            "count": 1
          },
          {
            "date": "2025-03-20",
            "count": 1
          },
          {
            "date": "2025-03-21",
            "count": 1
          },
          {
            "date": "2025-03-23",
            "count": 1
          },
          {
            "date": "2025-03-26",
            "count": 1
          },
          {
            "date": "2025-03-28",
            "count": 1
          },
          {
            "date": "2025-03-29",
            "count": 1
          },
          {
            "date": "2025-04-01",
            "count": 1
          },
          {
            "date": "2025-04-02",
            "count": 1
          },
          {
            "date": "2025-04-03",
            "count": 1
          },
          {
            "date": "2025-04-05",
            "count": 1
          },
          {
            "date": "2025-04-09",
            "count": 1
          },
          {
            "date": "2025-04-13",
            "count": 1
          },
          {
            "date": "2025-04-14",
            "count": 1
          },
          {
            "date": "2025-04-20",
            "count": 1
          },
          {
            "date": "2025-04-22",
            "count": 1
          },
          {
            "date": "2025-04-24",
            "count": 1
          },
          {
            "date": "2025-04-27",
            "count": 1
          },
          {
            "date": "2025-05-02",
            "count": 1
          },
          {
            "date": "2025-05-04",
            "count": 1
          },
          {
            "date": "2025-05-15",
            "count": 1
          },
          {
            "date": "2025-05-19",
            "count": 3
          },
          {
            "date": "2025-05-28",
            "count": 1
          },
          {
            "date": "2025-05-30",
            "count": 1
          },
          {
            "date": "2025-06-03",
            "count": 1
          },
          {
            "date": "2025-06-09",
            "count": 1
          },
          {
            "date": "2025-06-10",
            "count": 1
          },
          {
            "date": "2025-06-14",
            "count": 1
          },
          {
            "date": "2025-06-16",
            "count": 1
          },
          {
            "date": "2025-06-17",
            "count": 1
          },
          {
            "date": "2025-06-20",
            "count": 1
          },
          {
            "date": "2025-06-21",
            "count": 2
          },
          {
            "date": "2025-06-22",
            "count": 1
          },
          {
            "date": "2025-06-29",
            "count": 1
          },
          {
            "date": "2025-07-02",
            "count": 1
          },
          {
            "date": "2025-07-04",
            "count": 1
          },
          {
            "date": "2025-07-06",
            "count": 1
          },
          {
            "date": "2025-07-09",
            "count": 1
          },
          {
            "date": "2025-07-14",
            "count": 1
          },
          {
            "date": "2025-07-18",
            "count": 1
          },
          {
            "date": "2025-07-20",
            "count": 1
          },
          {
            "date": "2025-07-23",
            "count": 1
          },
          {
            "date": "2025-07-28",
            "count": 1
          },
          {
            "date": "2025-07-30",
            "count": 1
          },
          {
            "date": "2025-08-03",
            "count": 1
          },
          {
            "date": "2025-08-12",
            "count": 1
          },
          {
            "date": "2025-08-13",
            "count": 1
          },
          {
            "date": "2025-08-14",
            "count": 1
          },
          {
            "date": "2025-08-15",
            "count": 2
          },
          {
            "date": "2025-08-18",
            "count": 1
          },
          {
            "date": "2025-08-20",
            "count": 1
          },
          {
            "date": "2025-08-23",
            "count": 1
          },
          {
            "date": "2025-08-27",
            "count": 1
          },
          {
            "date": "2025-08-31",
            "count": 1
          },
          {
            "date": "2025-09-18",
            "count": 1
          },
          {
            "date": "2025-09-26",
            "count": 1
          },
          {
            "date": "2025-09-28",
            "count": 1
          },
          {
            "date": "2025-10-02",
            "count": 1
          },
          {
            "date": "2025-10-04",
            "count": 1
          },
          {
            "date": "2025-10-11",
            "count": 1
          },
          {
            "date": "2025-10-14",
            "count": 1
          },
          {
            "date": "2025-10-19",
            "count": 2
          },
          {
            "date": "2025-10-21",
            "count": 2
          },
          {
            "date": "2025-10-24",
            "count": 1
          },
          {
            "date": "2025-10-25",
            "count": 1
          },
          {
            "date": "2025-10-30",
            "count": 1
          },
          {
            "date": "2025-11-08",
            "count": 1
          },
          {
            "date": "2025-11-11",
            "count": 2
          },
          {
            "date": "2025-11-14",
            "count": 1
          },
          {
            "date": "2025-11-17",
            "count": 1
          },
          {
            "date": "2025-11-24",
            "count": 2
          },
          {
            "date": "2025-11-27",
            "count": 1
          },
          {
            "date": "2025-12-03",
            "count": 1
          },
          {
            "date": "2025-12-05",
            "count": 2
          },
          {
            "date": "2025-12-09",
            "count": 2
          },
          {
            "date": "2025-12-16",
            "count": 1
          },
          {
            "date": "2025-12-24",
            "count": 1
          },
          {
            "date": "2025-12-25",
            "count": 1
          },
          {
            "date": "2025-12-27",
            "count": 1
          },
          {
            "date": "2026-01-03",
            "count": 1
          },
          {
            "date": "2026-01-13",
            "count": 1
          },
          {
            "date": "2026-01-23",
            "count": 1
          },
          {
            "date": "2026-01-25",
            "count": 1
          },
          {
            "date": "2026-02-10",
            "count": 1
          },
          {
            "date": "2026-02-12",
            "count": 1
          },
          {
            "date": "2026-03-09",
            "count": 1
          },
          {
            "date": "2026-03-14",
            "count": 1
          },
          {
            "date": "2026-04-10",
            "count": 1
          },
          {
            "date": "2026-04-15",
            "count": 1
          },
          {
            "date": "2026-04-22",
            "count": 1
          },
          {
            "date": "2026-04-27",
            "count": 1
          },
          {
            "date": "2026-04-29",
            "count": 1
          },
          {
            "date": "2026-05-08",
            "count": 1
          },
          {
            "date": "2026-05-17",
            "count": 1
          },
          {
            "date": "2026-05-25",
            "count": 1
          },
          {
            "date": "2026-06-01",
            "count": 1
          },
          {
            "date": "2026-06-02",
            "count": 2
          },
          {
            "date": "2026-06-05",
            "count": 1
          },
          {
            "date": "2026-06-10",
            "count": 1
          },
          {
            "date": "2026-06-19",
            "count": 1
          },
          {
            "date": "2026-06-21",
            "count": 1
          },
          {
            "date": "2026-06-26",
            "count": 1
          },
          {
            "date": "2026-06-30",
            "count": 1
          },
          {
            "date": "2026-07-06",
            "count": 1
          },
          {
            "date": "2026-07-09",
            "count": 2
          },
          {
            "date": "2026-07-10",
            "count": 1
          },
          {
            "date": "2026-07-13",
            "count": 1
          },
          {
            "date": "2026-07-18",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 291,
        "total_forks": 291
      },
      "star_history": null,
      "open_issues_and_prs": 8
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "ta_codegen/generator/Cargo.toml",
        "ta_codegen/output/dotnet/tools/TaCodegenServe.csproj",
        "ta_codegen/output/rust/Cargo.toml",
        "ta_codegen/output/rust/library/Cargo.toml",
        "ta_codegen/output/rust/tools/Cargo.toml"
      ],
      "largest_source_bytes": 12329300,
      "source_files_sampled": 922,
      "oversized_source_files": 196,
      "agent_instruction_files": [
        "CLAUDE.md",
        "src/tools/ta_regtest/CLAUDE.md",
        "ta_codegen/generator/CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 27322
    },
    "dependencies": {
      "manifests": [
        "website/package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 498,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 1,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [
        {
          "name": "katex",
          "manifest": "website/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.16.47"
        },
        {
          "name": "serde",
          "manifest": "ta_codegen/generator/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "serde_yaml",
          "manifest": "ta_codegen/generator/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.9"
        },
        {
          "name": "serde_json",
          "manifest": "ta_codegen/generator/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "regex",
          "manifest": "ta_codegen/generator/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "regex",
            "direct": true,
            "version": "1.12.3",
            "ecosystem": "crates"
          },
          {
            "name": "serde",
            "direct": true,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "serde_json",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "serde_json",
            "direct": true,
            "version": "1.0.149",
            "ecosystem": "crates"
          },
          {
            "name": "serde_yaml",
            "direct": true,
            "version": "0.9.34+deprecated",
            "ecosystem": "crates"
          },
          {
            "name": "katex",
            "direct": true,
            "version": "0.16.47",
            "ecosystem": "npm"
          },
          {
            "name": "aho-corasick",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "equivalent",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "crates"
          },
          {
            "name": "hashbrown",
            "direct": false,
            "version": "0.16.1",
            "ecosystem": "crates"
          },
          {
            "name": "indexmap",
            "direct": false,
            "version": "2.13.0",
            "ecosystem": "crates"
          },
          {
            "name": "itoa",
            "direct": false,
            "version": "1.0.17",
            "ecosystem": "crates"
          },
          {
            "name": "memchr",
            "direct": false,
            "version": "2.8.0",
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro2",
            "direct": false,
            "version": "1.0.106",
            "ecosystem": "crates"
          },
          {
            "name": "quote",
            "direct": false,
            "version": "1.0.45",
            "ecosystem": "crates"
          },
          {
            "name": "regex-automata",
            "direct": false,
            "version": "0.4.14",
            "ecosystem": "crates"
          },
          {
            "name": "regex-syntax",
            "direct": false,
            "version": "0.8.10",
            "ecosystem": "crates"
          },
          {
            "name": "ryu",
            "direct": false,
            "version": "1.0.23",
            "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": "syn",
            "direct": false,
            "version": "2.0.117",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-ident",
            "direct": false,
            "version": "1.0.24",
            "ecosystem": "crates"
          },
          {
            "name": "unsafe-libyaml",
            "direct": false,
            "version": "0.2.11",
            "ecosystem": "crates"
          },
          {
            "name": "zmij",
            "direct": false,
            "version": "1.0.21",
            "ecosystem": "crates"
          },
          {
            "name": "@babel/generator",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-string-parser",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-string-parser",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "8.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/parser",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/parser",
            "direct": false,
            "version": "8.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/types",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/types",
            "direct": false,
            "version": "8.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@bufbuild/protobuf",
            "direct": false,
            "version": "2.12.1",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/wasi-threads",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/aix-ppc64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ia32",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-loong64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-mips64el",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ppc64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-riscv64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-s390x",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openharmony-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/sunos-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-ia32",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/gen-mapping",
            "direct": false,
            "version": "0.3.13",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/remapping",
            "direct": false,
            "version": "2.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/resolve-uri",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/sourcemap-codec",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/trace-mapping",
            "direct": false,
            "version": "0.3.31",
            "ecosystem": "npm"
          },
          {
            "name": "@lit-labs/ssr-dom-shim",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@lit/reactive-element",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit-vue/plugin-component",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit-vue/plugin-frontmatter",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit-vue/plugin-headers",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit-vue/plugin-sfc",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit-vue/plugin-title",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit-vue/plugin-toc",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit-vue/shared",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit-vue/types",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/helper",
            "direct": false,
            "version": "0.23.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-alert",
            "direct": false,
            "version": "0.23.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-align",
            "direct": false,
            "version": "0.24.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-attrs",
            "direct": false,
            "version": "0.25.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-container",
            "direct": false,
            "version": "0.23.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-demo",
            "direct": false,
            "version": "0.23.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-figure",
            "direct": false,
            "version": "0.23.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-footnote",
            "direct": false,
            "version": "0.23.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-icon",
            "direct": false,
            "version": "0.24.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-img-lazyload",
            "direct": false,
            "version": "0.23.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-img-mark",
            "direct": false,
            "version": "0.23.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-img-size",
            "direct": false,
            "version": "0.23.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-include",
            "direct": false,
            "version": "0.23.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-inline-rule",
            "direct": false,
            "version": "0.23.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-katex-slim",
            "direct": false,
            "version": "0.26.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-layout",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-mark",
            "direct": false,
            "version": "0.23.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-mathjax-slim",
            "direct": false,
            "version": "0.26.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-plantuml",
            "direct": false,
            "version": "0.24.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-spoiler",
            "direct": false,
            "version": "0.23.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-stylize",
            "direct": false,
            "version": "0.23.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-sub",
            "direct": false,
            "version": "0.24.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-sup",
            "direct": false,
            "version": "0.24.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-tab",
            "direct": false,
            "version": "0.24.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-tasklist",
            "direct": false,
            "version": "0.23.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-tex",
            "direct": false,
            "version": "0.24.2",
            "ecosystem": "npm"
          },
          {
            "name": "@mdit/plugin-uml",
            "direct": false,
            "version": "0.24.2",
            "ecosystem": "npm"
          },
          {
            "name": "@napi-rs/wasm-runtime",
            "direct": false,
            "version": "1.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-project/types",
            "direct": false,
            "version": "0.139.0",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-android-arm64",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-darwin-arm64",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-darwin-x64",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-freebsd-x64",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-linux-arm-glibc",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-linux-arm-musl",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-linux-arm64-glibc",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-linux-arm64-musl",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-linux-x64-glibc",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-linux-x64-musl",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-win32-arm64",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-win32-ia32",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-win32-x64",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@pkgr/core",
            "direct": false,
            "version": "0.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-android-arm64",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-arm64",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-x64",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-freebsd-x64",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-gnu",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-musl",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-ppc64-gnu",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-s390x-gnu",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-gnu",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-musl",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-openharmony-arm64",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-wasm32-wasi",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-arm64-msvc",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-x64-msvc",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/pluginutils",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/core",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/engine-javascript",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/engine-oniguruma",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/langs",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/primitive",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/themes",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/transformers",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/types",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/vscode-textmate",
            "direct": false,
            "version": "10.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@stackblitz/sdk",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@tybys/wasm-util",
            "direct": false,
            "version": "0.10.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/debug",
            "direct": false,
            "version": "4.1.13",
            "ecosystem": "npm"
          },
          {
            "name": "@types/fs-extra",
            "direct": false,
            "version": "11.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/hash-sum",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/hast",
            "direct": false,
            "version": "3.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/jsesc",
            "direct": false,
            "version": "2.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/jsonfile",
            "direct": false,
            "version": "6.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/linkify-it",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/markdown-it",
            "direct": false,
            "version": "14.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/markdown-it-emoji",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/mdast",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/mdurl",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/ms",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "24.13.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "26.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/picomatch",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/sax",
            "direct": false,
            "version": "1.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/trusted-types",
            "direct": false,
            "version": "2.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/unist",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/web-bluetooth",
            "direct": false,
            "version": "0.0.21",
            "ecosystem": "npm"
          },
          {
            "name": "@ungap/structured-clone",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@vitejs/plugin-vue",
            "direct": false,
            "version": "6.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "@vue-macros/common",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-core",
            "direct": false,
            "version": "3.5.39",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-dom",
            "direct": false,
            "version": "3.5.39",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-sfc",
            "direct": false,
            "version": "3.5.39",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-ssr",
            "direct": false,
            "version": "3.5.39",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-api",
            "direct": false,
            "version": "8.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-kit",
            "direct": false,
            "version": "8.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-shared",
            "direct": false,
            "version": "8.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/reactivity",
            "direct": false,
            "version": "3.5.39",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/runtime-core",
            "direct": false,
            "version": "3.5.39",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/runtime-dom",
            "direct": false,
            "version": "3.5.39",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/server-renderer",
            "direct": false,
            "version": "3.5.39",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/shared",
            "direct": false,
            "version": "3.5.39",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/bundler-vite",
            "direct": false,
            "version": "2.0.0-rc.30",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/bundlerutils",
            "direct": false,
            "version": "2.0.0-rc.30",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/cli",
            "direct": false,
            "version": "2.0.0-rc.30",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/client",
            "direct": false,
            "version": "2.0.0-rc.30",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/core",
            "direct": false,
            "version": "2.0.0-rc.30",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/helper",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/highlighter-helper",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/markdown",
            "direct": false,
            "version": "2.0.0-rc.30",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-active-header-links",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-back-to-top",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-blog",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-catalog",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-comment",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-copy-code",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-copyright",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-git",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-icon",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-links-check",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-markdown-chart",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-markdown-ext",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-markdown-hint",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-markdown-image",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-markdown-include",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-markdown-math",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-markdown-preview",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-markdown-stylize",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-markdown-tab",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-notice",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-nprogress",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-photo-swipe",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-reading-time",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-redirect",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-rtl",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-sass-palette",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-seo",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-shiki",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-sitemap",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-slimsearch",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/plugin-theme-data",
            "direct": false,
            "version": "2.0.0-rc.130",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/shared",
            "direct": false,
            "version": "2.0.0-rc.30",
            "ecosystem": "npm"
          },
          {
            "name": "@vuepress/utils",
            "direct": false,
            "version": "2.0.0-rc.30",
            "ecosystem": "npm"
          },
          {
            "name": "@vueuse/core",
            "direct": false,
            "version": "14.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vueuse/metadata",
            "direct": false,
            "version": "14.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vueuse/shared",
            "direct": false,
            "version": "14.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.17.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "arg",
            "direct": false,
            "version": "5.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "1.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ast-kit",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "ast-walker-scope",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "autoprefixer",
            "direct": false,
            "version": "10.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "bail",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "balloon-css",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "baseline-browser-mapping",
            "direct": false,
            "version": "2.10.43",
            "ecosystem": "npm"
          },
          {
            "name": "bcrypt-ts",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "birpc",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "boolbase",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "browserslist",
            "direct": false,
            "version": "4.28.6",
            "ecosystem": "npm"
          },
          {
            "name": "cac",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "camelcase",
            "direct": false,
            "version": "5.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "caniuse-lite",
            "direct": false,
            "version": "1.0.30001805",
            "ecosystem": "npm"
          },
          {
            "name": "ccount",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "5.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "character-entities-html4",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "character-entities-legacy",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cheerio",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "cheerio-select",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "chokidar",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cli-cursor",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cli-spinners",
            "direct": false,
            "version": "3.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "cliui",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "colorjs.io",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "comma-separated-tokens",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "14.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "8.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "confbox",
            "direct": false,
            "version": "0.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "confbox",
            "direct": false,
            "version": "0.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "connect-history-api-fallback",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "create-codepen",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "css-select",
            "direct": false,
            "version": "5.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "css-what",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "csstype",
            "direct": false,
            "version": "3.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "decamelize",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "dequal",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "detect-libc",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "devlop",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "dijkstrajs",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "dom-serializer",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "domelementtype",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "domhandler",
            "direct": false,
            "version": "5.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "domutils",
            "direct": false,
            "version": "3.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "electron-to-chromium",
            "direct": false,
            "version": "1.5.389",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "encoding-sniffer",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "4.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "envinfo",
            "direct": false,
            "version": "7.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "escalade",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "esprima",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "estree-walker",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "exsolve",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "extend",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "extend-shallow",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "fflate",
            "direct": false,
            "version": "0.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "find-up",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fraction.js",
            "direct": false,
            "version": "5.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "fs-extra",
            "direct": false,
            "version": "11.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "get-caller-file",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "get-east-asian-width",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "giscus",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "graceful-fs",
            "direct": false,
            "version": "4.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "gray-matter",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "hash-sum",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-from-html",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-from-parse5",
            "direct": false,
            "version": "8.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-parse-selector",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-sanitize",
            "direct": false,
            "version": "5.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-to-html",
            "direct": false,
            "version": "9.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-whitespace",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "hastscript",
            "direct": false,
            "version": "9.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "hookable",
            "direct": false,
            "version": "5.5.3",
            "ecosystem": "npm"
          },
          {
            "name": "html-void-elements",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "htmlparser2",
            "direct": false,
            "version": "10.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "immutable",
            "direct": false,
            "version": "5.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "is-extendable",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-extglob",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-glob",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-interactive",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-plain-obj",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-unicode-supported",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "3.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsesc",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "json5",
            "direct": false,
            "version": "2.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "jsonfile",
            "direct": false,
            "version": "6.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "kind-of",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-android-arm64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-arm64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-x64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-freebsd-x64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-gnu",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-musl",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-gnu",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-musl",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-arm64-msvc",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-x64-msvc",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lilconfig",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "linkify-it",
            "direct": false,
            "version": "5.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "lit",
            "direct": false,
            "version": "3.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "lit-element",
            "direct": false,
            "version": "4.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "lit-html",
            "direct": false,
            "version": "3.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "local-pkg",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "locate-path",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "log-symbols",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.21",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string-ast",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-it",
            "direct": false,
            "version": "14.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-it-anchor",
            "direct": false,
            "version": "9.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-it-cjk-friendly",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-it-emoji",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-to-hast",
            "direct": false,
            "version": "13.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "mdurl",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-character",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-encode",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-sanitize-uri",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-symbol",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-types",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-function",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "mlly",
            "direct": false,
            "version": "1.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "muggle-string",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.16",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "5.1.16",
            "ecosystem": "npm"
          },
          {
            "name": "node-addon-api",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "node-releases",
            "direct": false,
            "version": "2.0.51",
            "ecosystem": "npm"
          },
          {
            "name": "nth-check",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "onetime",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "oniguruma-parser",
            "direct": false,
            "version": "0.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "oniguruma-to-es",
            "direct": false,
            "version": "4.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "ora",
            "direct": false,
            "version": "9.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-try",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse5",
            "direct": false,
            "version": "7.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse5-htmlparser2-tree-adapter",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse5-parser-stream",
            "direct": false,
            "version": "7.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "path-exists",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "pathe",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "perfect-debounce",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "photoswipe",
            "direct": false,
            "version": "5.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "pkg-types",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "pkg-types",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "pngjs",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.22",
            "ecosystem": "npm"
          },
          {
            "name": "postcss-load-config",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "postcss-value-parser",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "property-information",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "punycode.js",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "qrcode",
            "direct": false,
            "version": "1.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "quansync",
            "direct": false,
            "version": "0.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "readdirp",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "regex-recursion",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "regex-utilities",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "rehype-parse",
            "direct": false,
            "version": "9.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "rehype-sanitize",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "rehype-stringify",
            "direct": false,
            "version": "10.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "require-directory",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "require-main-filename",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "restore-cursor",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "rolldown",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "rxjs",
            "direct": false,
            "version": "7.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "safer-buffer",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "sass",
            "direct": false,
            "version": "1.100.0",
            "ecosystem": "npm"
          },
          {
            "name": "sass-embedded",
            "direct": false,
            "version": "1.100.0",
            "ecosystem": "npm"
          },
          {
            "name": "sass-embedded-all-unknown",
            "direct": false,
            "version": "1.100.0",
            "ecosystem": "npm"
          },
          {
            "name": "sass-embedded-android-arm",
            "direct": false,
            "version": "1.100.0",
            "ecosystem": "npm"
          },
          {
            "name": "sass-embedded-android-arm64",
            "direct": false,
            "version": "1.100.0",
            "ecosystem": "npm"
          },
          {
            "name": "sass-embedded-android-riscv64",
            "direct": false,
            "version": "1.100.0",
            "ecosystem": "npm"
          },
          {
            "name": "sass-embedded-android-x64",
            "direct": false,
            "version": "1.100.0",
            "ecosystem": "npm"
          },
          {
            "name": "sass-embedded-darwin-arm64",
            "direct": false,
            "version": "1.100.0",
            "ecosystem": "npm"
          },
          {
            "name": "sass-embedded-darwin-x64",
            "direct": false,
            "version": "1.100.0",
            "ecosystem": "npm"
          },
          {
            "name": "sass-embedded-linux-arm",
            "direct": false,
            "version": "1.100.0",
            "ecosystem": "npm"
          },
          {
            "name": "sass-embedded-linux-arm64",
            "direct": false,
            "version": "1.100.0",
            "ecosystem": "npm"
          },
          {
            "name": "sass-embedded-linux-musl-arm",
            "direct": false,
            "version": "1.100.0",
            "ecosystem": "npm"
          },
          {
            "name": "sass-embedded-linux-musl-arm64",
            "direct": false,
            "version": "1.100.0",
            "ecosystem": "npm"
          },
          {
            "name": "sass-embedded-linux-musl-riscv64",
            "direct": false,
            "version": "1.100.0",
            "ecosystem": "npm"
          },
          {
            "name": "sass-embedded-linux-musl-x64",
            "direct": false,
            "version": "1.100.0",
            "ecosystem": "npm"
          },
          {
            "name": "sass-embedded-linux-riscv64",
            "direct": false,
            "version": "1.100.0",
            "ecosystem": "npm"
          },
          {
            "name": "sass-embedded-linux-x64",
            "direct": false,
            "version": "1.100.0",
            "ecosystem": "npm"
          },
          {
            "name": "sass-embedded-unknown-all",
            "direct": false,
            "version": "1.100.0",
            "ecosystem": "npm"
          },
          {
            "name": "sass-embedded-win32-arm64",
            "direct": false,
            "version": "1.100.0",
            "ecosystem": "npm"
          },
          {
            "name": "sass-embedded-win32-x64",
            "direct": false,
            "version": "1.100.0",
            "ecosystem": "npm"
          },
          {
            "name": "sax",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "scule",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "section-matter",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "set-blocking",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "shiki",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "signal-exit",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "sitemap",
            "direct": false,
            "version": "9.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "slimsearch",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-js",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "space-separated-tokens",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "sprintf-js",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "stdin-discarder",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "8.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "stringify-entities",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-bom-string",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "8.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "sync-child-process",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "sync-message-port",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "synckit",
            "direct": false,
            "version": "0.11.13",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "npm"
          },
          {
            "name": "trim-lines",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "trough",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "uc.micro",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "ufo",
            "direct": false,
            "version": "1.6.4",
            "ecosystem": "npm"
          },
          {
            "name": "undici",
            "direct": false,
            "version": "7.28.0",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "7.18.2",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "8.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "unified",
            "direct": false,
            "version": "11.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-is",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-position",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-stringify-position",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-visit",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-visit-parents",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "universalify",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "unplugin",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "unplugin-utils",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "upath",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "upath",
            "direct": false,
            "version": "3.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "update-browserslist-db",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "varint",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "vfile",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "vfile-location",
            "direct": false,
            "version": "5.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "vfile-message",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "8.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "vue",
            "direct": false,
            "version": "3.5.39",
            "ecosystem": "npm"
          },
          {
            "name": "vue-router",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "vuepress",
            "direct": false,
            "version": "2.0.0-rc.30",
            "ecosystem": "npm"
          },
          {
            "name": "vuepress-plugin-components",
            "direct": false,
            "version": "2.0.0-rc.107",
            "ecosystem": "npm"
          },
          {
            "name": "vuepress-plugin-md-enhance",
            "direct": false,
            "version": "2.0.0-rc.107",
            "ecosystem": "npm"
          },
          {
            "name": "vuepress-shared",
            "direct": false,
            "version": "2.0.0-rc.107",
            "ecosystem": "npm"
          },
          {
            "name": "vuepress-theme-hope",
            "direct": false,
            "version": "2.0.0-rc.107",
            "ecosystem": "npm"
          },
          {
            "name": "web-namespaces",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "webpack-virtual-modules",
            "direct": false,
            "version": "0.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-encoding",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-mimetype",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "which-module",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "6.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "y18n",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "yaml",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "15.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "yargs-parser",
            "direct": false,
            "version": "18.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "yoctocolors",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "zwitch",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 499,
        "direct_count": 6,
        "indirect_count": 493
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 1,
        "merged_prs": 23,
        "open_issues": 7,
        "closed_ratio": 0.933,
        "closed_issues": 98,
        "closed_unmerged_prs": 8
      },
      "bus_factor": 1,
      "bot_contributors": 2,
      "top_contributors": [
        {
          "type": "User",
          "login": "mario4tier",
          "commits": 601,
          "avatar_url": "https://avatars.githubusercontent.com/u/4542410?v=4"
        },
        {
          "type": "User",
          "login": "chadfurman",
          "commits": 384,
          "avatar_url": "https://avatars.githubusercontent.com/u/635170?v=4"
        },
        {
          "type": "User",
          "login": "vbmithr",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/797581?v=4"
        },
        {
          "type": "User",
          "login": "chad-fossa",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/161645047?v=4"
        },
        {
          "type": "User",
          "login": "cpp4ever",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/1954426?v=4"
        },
        {
          "type": "User",
          "login": "dexhunter",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/6930518?v=4"
        },
        {
          "type": "User",
          "login": "nehemiah888",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/141201269?v=4"
        },
        {
          "type": "User",
          "login": "greenTableWork",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/252103756?v=4"
        },
        {
          "type": "User",
          "login": "vikasnkumar",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/12120?v=4"
        },
        {
          "type": "User",
          "login": "trufanov-nok",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/5746456?v=4"
        }
      ],
      "contributors_sampled": 20,
      "top_contributor_share": 0.592
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "dev-nightly-tests.yml",
        "main-nightly-tests.yml",
        "post-release-vcpkg.yml",
        "release-step-1.yml",
        "release-step-2.yml",
        "website.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": true,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "Cargo.lock",
        "pnpm-lock.yaml"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 4,
            "reason": "binaries present in source code",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 3,
            "reason": "branch protection is not maximal on development and all 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 1 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 1/29 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": 0,
            "reason": "no 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 29 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": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "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": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "144c635bb429759235696d9f95e1734169205f3a",
        "ran_at": "2026-07-27T10:40:16Z",
        "aggregate_score": 3.5,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-27T08:46:31Z",
      "oldest_open_prs": [
        {
          "number": 85,
          "created_at": "2026-04-05T15:05:16Z",
          "last_comment_at": "2026-07-14T19:19:38Z",
          "last_comment_author": "mario4tier"
        }
      ],
      "last_merged_pr_at": "2026-07-27T02:09:46Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 30,
          "created_at": "2024-02-13T18:07:52Z",
          "last_comment_at": "2024-11-12T04:07:23Z",
          "last_comment_author": "mario4tier"
        },
        {
          "number": 60,
          "created_at": "2025-03-17T06:48:14Z",
          "last_comment_at": "2025-03-17T14:55:40Z",
          "last_comment_author": "mario4tier"
        },
        {
          "number": 81,
          "created_at": "2026-02-19T20:06:41Z",
          "last_comment_at": "2026-07-04T11:37:17Z",
          "last_comment_author": "mario4tier"
        },
        {
          "number": 84,
          "created_at": "2026-03-16T22:33:26Z",
          "last_comment_at": "2026-07-03T23:19:16Z",
          "last_comment_author": "mario4tier"
        },
        {
          "number": 116,
          "created_at": "2026-07-15T19:03:42Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 144,
          "created_at": "2026-07-26T04:26:54Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 145,
          "created_at": "2026-07-27T04:20:55Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/TA-Lib/ta-lib",
    "host": "github.com",
    "name": "ta-lib",
    "owner": "TA-Lib"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "at_risk",
      "name": "Overall health",
      "note": "High-Risk Jurisdiction Policy applies a 50% multiplier to weighted overall health and gives it an At risk ceiling of 49.",
      "notes": [
        {
          "code": "jurisdiction_overall_adjustment",
          "params": {
            "cap": 49,
            "pct": 50
          }
        }
      ],
      "value": 31,
      "inputs": {
        "security": 34,
        "vitality": 77,
        "community": 67,
        "governance": 60,
        "engineering": 68,
        "high_risk_jurisdiction_cap": 49,
        "high_risk_jurisdiction_multiplier": 50,
        "weighted_overall_before_jurisdiction": 62,
        "overall_after_jurisdiction_multiplier": 31
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 77,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 77,
            "inputs": {
              "commits_last_year": 966,
              "human_commit_share": 0.78,
              "days_since_last_push": 0,
              "active_weeks_last_year": 19
            },
            "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": "19/52 weeks with commits",
                "points": 13.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 19
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "966 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 966
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 29 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "good",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 76,
            "inputs": {
              "releases_count": 6,
              "latest_release_tag": "v0.7.1",
              "releases_from_tags": false,
              "days_since_latest_release": 23,
              "mean_days_between_releases": 174.2
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "6 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 6
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 23 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 23
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~174.2 days",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 174.2
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 0,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 0 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 67,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "good",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 81,
            "inputs": {
              "forks": 291,
              "stars": 1638,
              "watchers": 30,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "1,638 stars",
                "points": 52.1,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 1638
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "291 forks",
                "points": 20.5,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 291
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "30 watchers",
                "points": 8.1,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 30
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (BSD-3-Clause)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "BSD-3-Clause"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 60,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 42,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 20,
              "top_contributor_share": 0.592
            },
            "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 59% of commits",
                "points": 9.2,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 59
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "20 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 20
                    }
                  }
                ],
                "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": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 72,
            "inputs": {
              "merged_prs": 23,
              "open_issues": 7,
              "closed_issues": 98,
              "issue_closed_ratio": 0.933,
              "closed_unmerged_prs": 8
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "93% of issues closed",
                "points": 43.6,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 93
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "23/31 decided PRs merged",
                "points": 28.4,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 23,
                      "decided": 31
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 1/29 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "followers": 332,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "TA-Lib",
              "public_repos": 12,
              "account_age_days": 3628
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "332 followers of TA-Lib",
                "points": 18.1,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 332,
                      "login": "TA-Lib"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "12 public repos, account ~9 yr old",
                "points": 20.1,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 12
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 9
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "moderate",
        "name": "Engineering Quality",
        "value": 68,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 54,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "6 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 6
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "0 out of 1 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": [
                "ta-lib",
                "financial",
                "series-analysis",
                "technical-analysis"
              ],
              "has_wiki": false,
              "homepage": "https://ta-lib.org/",
              "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://ta-lib.org/",
                "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": "4 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "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": "at_risk",
        "name": "Security",
        "value": 34,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "critical",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging. Remaining weights renormalized. High-Risk Jurisdiction Policy applies a 50% multiplier to Security posture and gives it an At risk ceiling of 49.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "jurisdiction_posture_adjustment",
                "params": {
                  "cap": 49,
                  "pct": 50
                }
              }
            ],
            "value": 18,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 3.5,
              "high_risk_jurisdiction_cap": 49,
              "high_risk_jurisdiction_multiplier": 50,
              "security_posture_after_multiplier": 18,
              "security_posture_before_jurisdiction": 35
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "binaries present in source code",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "0 out of 1 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 1/29 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": "no update tool detected",
                "points": 0,
                "status": "missed",
                "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 29 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 not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "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": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 498 resolved dependencies against OSV; 1 could not be assessed (no resolved version, an unsupported ecosystem, or beyond the reported package list). This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories",
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 498
                }
              },
              {
                "code": "advisories_unassessed",
                "params": {
                  "count": 1
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 498,
              "unassessed_packages": 1,
              "affected_by_severity": "none",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 498,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "moderate",
            "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": 50,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": true,
              "exposures": [
                {
                  "role": "top_contributor",
                  "count": 1,
                  "country": "Russia"
                }
              ],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 14
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "Russia: top_contributor (1)",
                "points": 50,
                "status": "partial",
                "details": [
                  {
                    "code": "jurisdiction_exposure",
                    "params": {
                      "role": "top_contributor",
                      "count": 1,
                      "country": "Russia"
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "good",
        "name": "AI Readiness",
        "value": 71,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "agent_instruction_files": [
                "CLAUDE.md",
                "src/tools/ta_regtest/CLAUDE.md",
                "ta_codegen/generator/CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 27322
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "CLAUDE.md, src/tools/ta_regtest/CLAUDE.md, ta_codegen/generator/CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "CLAUDE.md, src/tools/ta_regtest/CLAUDE.md, ta_codegen/generator/CLAUDE.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": "78 of 78 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 78,
                      "sampled": 78
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 66,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "Cargo.lock",
                "pnpm-lock.yaml"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0.09,
              "toolchain_manifests": [
                "ta_codegen/generator/Cargo.toml",
                "ta_codegen/output/dotnet/tools/TaCodegenServe.csproj",
                "ta_codegen/output/rust/Cargo.toml",
                "ta_codegen/output/rust/library/Cargo.toml",
                "ta_codegen/output/rust/tools/Cargo.toml"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "ta_codegen/generator/Cargo.toml, ta_codegen/output/dotnet/tools/TaCodegenServe.csproj, ta_codegen/output/rust/Cargo.toml (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "ta_codegen/generator/Cargo.toml, ta_codegen/output/dotnet/tools/TaCodegenServe.csproj, ta_codegen/output/rust/Cargo.toml"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "Java (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Java"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "9 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 9,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 88,
            "inputs": {
              "primary_language": "Java",
              "largest_source_bytes": 12329300,
              "source_files_sampled": 922,
              "oversized_source_files": 196
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Java (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Java"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "196/922 source files over 60KB",
                "points": 43.3,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 922,
                      "oversized": 196
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "Could not fetch npm package 'ta-lib.org' from its registry",
    "Could not fetch crates package 'ta-codegen' from its registry"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-27T10:40:35.789371Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/t/TA-Lib/ta-lib.svg",
  "full_name": "TA-Lib/ta-lib",
  "license_state": "standard",
  "license_spdx": "BSD-3-Clause"
}

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

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

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte Statistiken.