Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 1.13.0 · 2026-07-25 22:39 UTC

Whth / fabricatio

Fabricatio is a Python library designed for building applications that leverage Large Language Models (LLMs) using an event-based agent structure. It utilizes Handlebars for templating and provides a robust framework for managing tasks, workflows, and toolboxes, enabling developers to create intelligent and efficient applications.

Python · RustMIT★ 8 Sterne⑂ 2 Forksseit Feb. 2025Auf GitHub ansehen ↗

Whth/fabricatio erreicht einen Gesundheitsindex von 65 von 100 und liegt damit im Bereich Mittel. Am stärksten schneidet es bei Vitality (92/100) ab, am schwächsten bei Security (49/100). Zuletzt heute aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

65
gesamt / 100
Mittel

Software-Gesundheitsindex

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

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

Bewertungsprofil

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

Eigentümerschaft

WhthPersönliches Konto
3 Follower33 öffentliche Reposseit Aug. 2021

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

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlichtTags
PyPIfabricatio0.32.3-260vor 31 Tagenaiagentsmulti-agentllmpyo3

Metriken nach Kategorie

Vitalität

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

92Exzellent · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 0 Tagen
30.5/36Commit-Rhythmus — 44/52 Wochen mit Commits
18/18Commit-Volumen — 1.265 Commits im letzten Jahr
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Verwendete Eingangsdaten
commits_last_year1.265
human_commit_share1
days_since_last_push0
active_weeks_last_year44
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 100 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 0 Tagen
27/27Release-Rhythmus — ein Release etwa alle 4,1 Tage
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Verwendete Eingangsdaten
releases_count100
latest_release_tagv0.33.0-dev5
releases_from_tagsnein
days_since_latest_release0
mean_days_between_releases4,1

Community & Verbreitung

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

51Mittel · 18 % des Gesamtindex
Wie die Bewertung erfolgt
13.7/60Stars — 8 Stars
0/25Forks — 2 Forks
1.7/15Watcher — 3 Watcher
Verwendete Eingangsdaten
forks2
stars8
watchers3
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (MIT)
18/18CONTRIBUTING-Leitfaden
13.5/13.5Verhaltenskodex
0/7.2Issue-Vorlage
6.3/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingja
has_issue_templatenein
has_code_of_conductja
has_pull_request_templateja

Nachhaltigkeit & Governance

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

53Mittel · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
0/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 100 % der Commits
2.7/13.5Breite der Beitragenden — 2 Beitragende
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
Verwendete Eingangsdaten
bus_factor1
contributors_sampled2
top_contributor_share0,999
Wie die Bewertung erfolgt
0/46.8Issue-Lösungsquote — keine Issues oder keine Daten
38.2/38.3PR-Annahme — 15/15 entschiedene PRs gemergt
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs15
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Issue-Lösungsquote. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
10/30Organisatorische Trägerschaft — persönliches (Nutzer-)Konto
0/20Verifizierte Domain — für Nutzerkonten nicht anwendbar
4.3/25Reichweite des Inhabers — 3 Follower von Whth
21.1/25Kontohistorie — 33 öffentliche Repos, Kontoalter ca. 4 Jahre
Verwendete Eingangsdaten
followers3
owner_typeUser
is_verified
owner_loginWhth
public_repos33
account_age_days1.815
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Verifizierte Domain. Die verbleibenden Gewichte wurden renormalisiert.

Paketpflege

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

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

77Gut · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 3 Workflow(s)
24/24Tests vorhanden
0/16Linter-Konfiguration
0/9.6Pre-Commit-Hooks
6.4/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — keine Daten
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfigja
has_linter_confignein
has_precommit_confignein
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: CI-Tests. Die verbleibenden Gewichte wurden renormalisiert.

Dokumentation

90Exzellent
Wie die Bewertung erfolgt
30/30README
25/25Dokumentationsverzeichnis
15/15Dokumentations-/Homepage-Site — https://pypi.org/project/fabricatio/
10/10Repository-Beschreibung
10/10Topics — 7 Topics
0/10Wiki
Verwendete Eingangsdaten
topicsagentic-ai, llm, workflow, ai, framework, harness-framework, multi-agent
has_wikinein
homepagehttps://pypi.org/project/fabricatio/
has_readmeja
has_docs_dirja
has_descriptionja

Sicherheit

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

49Gefährdet · 16 % des Gesamtindex

Sicherheitslage

36Gefährdet
Wie die Bewertung erfolgt
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
0/2.5CI-Tests — keine Daten
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/30 approved changesets -- score normalized to 0
0/2.5Contributors — project has 0 contributing companies or organizations -- score normalized to 0
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Lizenz — license file detected
7.5/7.5Maintained — 30 commit(s) and 0 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 — no SAST tool detected
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
0/7.5Vulnerabilities — 12 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate3,6
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): ci_tests, packaging. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
35/35Direkte Abhängigkeiten ohne bekannte Advisories — keine direkte Abhängigkeit trägt ein bekanntes Advisory
25/25Indirekte Abhängigkeiten ohne bekannte Advisories — keine indirekte Abhängigkeit trägt ein bekanntes Advisory
0/40Keine offenen Advisories — kein Advisory trägt ein Veröffentlichungsdatum
Verwendete Eingangsdaten
sourceosv
advisories0
affected_packages0
assessed_packages14
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Keine offenen Advisories. Die verbleibenden Gewichte wurden renormalisiert. Abgeglichen wurde die Laufzeit-Abhängigkeitshülle von pypi:fabricatio@0.32.3 — das, was die Installation des veröffentlichten Pakets nach sich zieht — mit 14 Paketen. Erreichbarkeit wird nicht analysiert.

AI Readiness

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

55Mittel · 0 % des Gesamtindex
Wie die Bewertung erfolgt
0/45Agentenanweisungen — keine CLAUDE.md / AGENTS.md / Editor-Regeln
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 100 von 100 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share1
agent_instruction_files
agent_instruction_max_bytes
Wie die Bewertung erfolgt
18/18Bootstrap mit einem Befehl — Justfile, docs/Makefile
22/22Automatisierte Tests
0/11Lint-/Format-Konfiguration
11/11Statische Typprüfung — packages/fabricatio-actions/python/fabricatio_actions/py.typed, packages/fabricatio-agent/python/fabricatio_agent/py.typed, packages/fabricatio-anki/python/fabricatio_anki/py.typed, packages/fabricatio-capabilities/python/fabricatio_capabilities/py.typed, packages/fabricatio-capable/python/fabricatio_capable/py.typed, packages/fabricatio-character/python/fabricatio_character/py.typed, packages/fabricatio-checkpoint/python/fabricatio_checkpoint/py.typed, packages/fabricatio-comfyui/python/fabricatio_comfyui/py.typed, packages/fabricatio-core/python/fabricatio_core/py.typed, packages/fabricatio-diff/python/fabricatio_diff/py.typed, packages/fabricatio-digest/python/fabricatio_digest/py.typed, packages/fabricatio-improve/python/fabricatio_improve/py.typed, packages/fabricatio-judge/python/fabricatio_judge/py.typed, packages/fabricatio-lancedb/python/fabricatio_lancedb/py.typed, packages/fabricatio-locale/python/fabricatio_locale/py.typed, packages/fabricatio-memory/python/fabricatio_memory/py.typed, packages/fabricatio-milvus/python/fabricatio_milvus/py.typed, packages/fabricatio-mock/python/fabricatio_mock/py.typed, packages/fabricatio-novel/python/fabricatio_novel/py.typed, packages/fabricatio-plot/python/fabricatio_plot/py.typed, packages/fabricatio-question/python/fabricatio_question/py.typed, packages/fabricatio-rag/python/fabricatio_rag/py.typed, packages/fabricatio-rule/python/fabricatio_rule/py.typed, packages/fabricatio-sandbox/python/fabricatio_sandbox/py.typed, packages/fabricatio-skill/python/fabricatio_skill/py.typed, packages/fabricatio-tagging/python/fabricatio_tagging/py.typed, packages/fabricatio-team/python/fabricatio_team/py.typed, packages/fabricatio-tei/python/fabricatio_tei/py.typed, packages/fabricatio-thinking/python/fabricatio_thinking/py.typed, packages/fabricatio-tool/python/fabricatio_tool/py.typed, packages/fabricatio-translate/python/fabricatio_translate/py.typed, packages/fabricatio-typst/python/fabricatio_typst/py.typed, packages/fabricatio-webui/frontend/tsconfig.json, packages/fabricatio-webui/python/fabricatio_webui/py.typed, packages/fabricatio-workspace/python/fabricatio_workspace/py.typed, packages/fabricatio-yue/python/fabricatio_yue/py.typed, python/fabricatio/py.typed
10/10Reproduzierbare Umgebung — Dockerfile, lockfile
0/10Belegte Agentenpraxis — keine von Agenten verfassten Commits unter den letzten 100
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilespnpm-lock.yaml
has_dockerfileja
typed_languagenein
bootstrap_filesJustfile, docs/Makefile
has_devcontainernein
has_linter_confignein
typecheck_configspackages/fabricatio-actions/python/fabricatio_actions/py.typed, packages/fabricatio-agent/python/fabricatio_agent/py.typed, packages/fabricatio-anki/python/fabricatio_anki/py.typed, packages/fabricatio-capabilities/python/fabricatio_capabilities/py.typed, packages/fabricatio-capable/python/fabricatio_capable/py.typed, packages/fabricatio-character/python/fabricatio_character/py.typed, packages/fabricatio-checkpoint/python/fabricatio_checkpoint/py.typed, packages/fabricatio-comfyui/python/fabricatio_comfyui/py.typed, packages/fabricatio-core/python/fabricatio_core/py.typed, packages/fabricatio-diff/python/fabricatio_diff/py.typed, packages/fabricatio-digest/python/fabricatio_digest/py.typed, packages/fabricatio-improve/python/fabricatio_improve/py.typed, packages/fabricatio-judge/python/fabricatio_judge/py.typed, packages/fabricatio-lancedb/python/fabricatio_lancedb/py.typed, packages/fabricatio-locale/python/fabricatio_locale/py.typed, packages/fabricatio-memory/python/fabricatio_memory/py.typed, packages/fabricatio-milvus/python/fabricatio_milvus/py.typed, packages/fabricatio-mock/python/fabricatio_mock/py.typed, packages/fabricatio-novel/python/fabricatio_novel/py.typed, packages/fabricatio-plot/python/fabricatio_plot/py.typed, packages/fabricatio-question/python/fabricatio_question/py.typed, packages/fabricatio-rag/python/fabricatio_rag/py.typed, packages/fabricatio-rule/python/fabricatio_rule/py.typed, packages/fabricatio-sandbox/python/fabricatio_sandbox/py.typed, packages/fabricatio-skill/python/fabricatio_skill/py.typed, packages/fabricatio-tagging/python/fabricatio_tagging/py.typed, packages/fabricatio-team/python/fabricatio_team/py.typed, packages/fabricatio-tei/python/fabricatio_tei/py.typed, packages/fabricatio-thinking/python/fabricatio_thinking/py.typed, packages/fabricatio-tool/python/fabricatio_tool/py.typed, packages/fabricatio-translate/python/fabricatio_translate/py.typed, packages/fabricatio-typst/python/fabricatio_typst/py.typed, packages/fabricatio-webui/frontend/tsconfig.json, packages/fabricatio-webui/python/fabricatio_webui/py.typed, packages/fabricatio-workspace/python/fabricatio_workspace/py.typed, packages/fabricatio-yue/python/fabricatio_yue/py.typed, python/fabricatio/py.typed
agent_commit_share0
toolchain_manifestsCargo.toml, crates/deck_loader/Cargo.toml, crates/error-mapping/Cargo.toml, crates/fabricatio-config/Cargo.toml, crates/fabricatio-constants/Cargo.toml, crates/fabricatio-logger/Cargo.toml, crates/fabricatio-router/Cargo.toml, crates/fabricatio-stubgen/Cargo.toml, crates/macro-utils/Cargo.toml, crates/mcp-manager/Cargo.toml, crates/scanner/Cargo.toml, crates/signify/Cargo.toml, crates/tex-convertor/Cargo.toml, crates/thryd/Cargo.toml, crates/utils/Cargo.toml, packages/fabricatio-agent/Cargo.toml, packages/fabricatio-anki/Cargo.toml, packages/fabricatio-checkpoint/Cargo.toml, packages/fabricatio-core/Cargo.toml, packages/fabricatio-diff/Cargo.toml, packages/fabricatio-lancedb/Cargo.toml, packages/fabricatio-locale/Cargo.toml, packages/fabricatio-memory/Cargo.toml, packages/fabricatio-novel/Cargo.toml, packages/fabricatio-sandbox/Cargo.toml, packages/fabricatio-skill/Cargo.toml, packages/fabricatio-tei/Cargo.toml, packages/fabricatio-thinking/Cargo.toml, packages/fabricatio-tool/Cargo.toml, packages/fabricatio-typst/Cargo.toml, packages/fabricatio-webui/Cargo.toml, packages/fabricatio-workspace/Cargo.toml
dependency_bot_commit_share0
Wie die Bewertung erfolgt
27/45Typprüfbarer Code — Python mit Typprüfungs-Konfiguration (packages/fabricatio-actions/python/fabricatio_actions/py.typed, packages/fabricatio-agent/python/fabricatio_agent/py.typed, packages/fabricatio-anki/python/fabricatio_anki/py.typed, packages/fabricatio-capabilities/python/fabricatio_capabilities/py.typed, packages/fabricatio-capable/python/fabricatio_capable/py.typed, packages/fabricatio-character/python/fabricatio_character/py.typed, packages/fabricatio-checkpoint/python/fabricatio_checkpoint/py.typed, packages/fabricatio-comfyui/python/fabricatio_comfyui/py.typed, packages/fabricatio-core/python/fabricatio_core/py.typed, packages/fabricatio-diff/python/fabricatio_diff/py.typed, packages/fabricatio-digest/python/fabricatio_digest/py.typed, packages/fabricatio-improve/python/fabricatio_improve/py.typed, packages/fabricatio-judge/python/fabricatio_judge/py.typed, packages/fabricatio-lancedb/python/fabricatio_lancedb/py.typed, packages/fabricatio-locale/python/fabricatio_locale/py.typed, packages/fabricatio-memory/python/fabricatio_memory/py.typed, packages/fabricatio-milvus/python/fabricatio_milvus/py.typed, packages/fabricatio-mock/python/fabricatio_mock/py.typed, packages/fabricatio-novel/python/fabricatio_novel/py.typed, packages/fabricatio-plot/python/fabricatio_plot/py.typed, packages/fabricatio-question/python/fabricatio_question/py.typed, packages/fabricatio-rag/python/fabricatio_rag/py.typed, packages/fabricatio-rule/python/fabricatio_rule/py.typed, packages/fabricatio-sandbox/python/fabricatio_sandbox/py.typed, packages/fabricatio-skill/python/fabricatio_skill/py.typed, packages/fabricatio-tagging/python/fabricatio_tagging/py.typed, packages/fabricatio-team/python/fabricatio_team/py.typed, packages/fabricatio-tei/python/fabricatio_tei/py.typed, packages/fabricatio-thinking/python/fabricatio_thinking/py.typed, packages/fabricatio-tool/python/fabricatio_tool/py.typed, packages/fabricatio-translate/python/fabricatio_translate/py.typed, packages/fabricatio-typst/python/fabricatio_typst/py.typed, packages/fabricatio-webui/frontend/tsconfig.json, packages/fabricatio-webui/python/fabricatio_webui/py.typed, packages/fabricatio-workspace/python/fabricatio_workspace/py.typed, packages/fabricatio-yue/python/fabricatio_yue/py.typed, python/fabricatio/py.typed)
54.9/55Handhabbare Dateigrößen — 1/645 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languagePython
largest_source_bytes68.031
source_files_sampled645
oversized_source_files1
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

8GitHub-Sterne
2Mitwirkende
1.265Commits, letzte 12 Monate
0Tage seit letztem Push
100Releases
1Bus-Faktor
0offene Issues
crates.io, PyPIPaket-Ökosysteme

Warnungen zur Datenerhebung

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • Could not fetch crates package 'fabricatio' from its registry

Weitere Details

Stern- und Fork-Verlauf 0 ★ / 2 ⇿
0Sterne
2Forks
45Releases

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.

111222212025-042025-092026-03
Major 0Minor 5Patch 21
OpenSSF Scorecard 3.6 / 10
3.6Gesamtwert

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-25 22:39 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
k. A.CI-Testsno pull request found
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
0Contributorsproject has 0 contributing companies or organizations -- score normalized to 0
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 0 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
0SASTno SAST tool detected
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
0Vulnerabilities12 existing vulnerabilities detected
Direkte Abhängigkeiten 18
RegistryPaketVersionsvorgabeManifest
crates.iopyo30.29.0Cargo.toml
crates.ioreqwest0.13.4Cargo.toml
crates.iotar0.4.46Cargo.toml
crates.ioflate21.1.9Cargo.toml
crates.ioclap4.6.1Cargo.toml
crates.iocolored3.1.1Cargo.toml
crates.iochrono0.4.45Cargo.toml
crates.ioindicatif0.18.6Cargo.toml
crates.ioglob0.3.3Cargo.toml
crates.iooctocrab0.53.1Cargo.toml
crates.ioonce_cell1.21.4Cargo.toml
crates.iothiserror2.0.18Cargo.toml
crates.iotokio1.52.3Cargo.toml
crates.iohuman-units0.5.3Cargo.toml
crates.iowalkdir2.5.0Cargo.toml
crates.iofabricatio-constantsCargo.toml
crates.iorustls0.23Cargo.toml
PyPIfabricatio-corepyproject.toml
Alle Abhängigkeiten 594

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

RegistryPaketVersionBeziehung
crates.iochronodirekt
crates.ioclapdirekt
crates.iocoloreddirekt
crates.ioflate2direkt
crates.ioglobdirekt
crates.iohuman-unitsdirekt
crates.ioindicatifdirekt
crates.iooctocrabdirekt
crates.ioonce_celldirekt
crates.iopyo3direkt
crates.ioreqwestdirekt
crates.iorustlsdirekt
crates.iotardirekt
crates.iothiserrordirekt
crates.iotokiodirekt
crates.iowalkdirdirekt
crates.ioarrow-arrayindirekt
crates.ioarrow-schemaindirekt
crates.ioasync-openaiindirekt
crates.ioasync-traitindirekt
crates.ioaxumindirekt
crates.iobase64indirekt
crates.iobiblatexindirekt
crates.ioblake3indirekt
crates.iocachedindirekt
crates.iocfg-ifindirekt
crates.iocriterionindirekt
crates.iocsvindirekt
crates.iodashmapindirekt
crates.iodirectories-nextindirekt
crates.iodotenvyindirekt
crates.ioepub-builderindirekt
crates.ioeventsource-streamindirekt
crates.iofigmentindirekt
crates.iofuturesindirekt
crates.iofutures-utilindirekt
crates.iogenanki-rs-revindirekt
crates.iogit2indirekt
crates.iohandlebarsindirekt
crates.ioheckindirekt
crates.ioheedindirekt
crates.iohttpindirekt
crates.ioignoreindirekt
crates.ioindocindirekt
crates.ioinferindirekt
crates.iolancedbindirekt
crates.iollm_jsonindirekt
crates.iomime_guessindirekt
crates.iomokaindirekt
crates.ionucleo-matcherindirekt
crates.iopep508_rsindirekt
crates.iopolibindirekt
crates.iopostcardindirekt
crates.iopyo3-async-runtimesindirekt
crates.iopyo3-build-configindirekt
crates.iopyo3-stub-genindirekt
crates.iopythonizeindirekt
crates.ioquoteindirekt
crates.iorayonindirekt
crates.ioregexindirekt
crates.iorho-hashlineindirekt
crates.iormcpindirekt
crates.iorustpython-astindirekt
crates.iorustpython-parserindirekt
crates.iosanitize-filenameindirekt
crates.iosecrecyindirekt
crates.ioserdeindirekt
crates.ioserde_jsonindirekt
crates.ioserde_yaml2indirekt
crates.iosimilarindirekt
crates.iostrsimindirekt
crates.iostrumindirekt
crates.iostrum_macrosindirekt
crates.iosynindirekt
crates.iotantivyindirekt
crates.iotempfileindirekt
crates.iotex2typst-rsindirekt
crates.iotiktoken-rsindirekt
crates.iotonicindirekt
crates.iotower-httpindirekt
crates.iotracingindirekt
crates.iotracing-appenderindirekt
crates.iotracing-subscriberindirekt
crates.iounicode-segmentationindirekt
crates.iourlindirekt
crates.iouuidindirekt
crates.iovalidatorindirekt
crates.iovfsindirekt
crates.iowhichindirekt
crates.iowhichlangindirekt
npm@asamuzakjp/css-color5.1.11indirekt
npm@asamuzakjp/dom-selector7.1.1indirekt
npm@asamuzakjp/generational-cache1.0.1indirekt
npm@asamuzakjp/nwsapi2.3.9indirekt
npm@babel/code-frame7.29.7indirekt
npm@babel/compat-data7.29.7indirekt
npm@babel/core7.28.5indirekt
npm@babel/generator7.29.7indirekt
npm@babel/generator8.0.0-rc.6indirekt
npm@babel/helper-annotate-as-pure7.29.7indirekt
npm@babel/helper-compilation-targets7.29.7indirekt
npm@babel/helper-create-class-features-plugin7.29.7indirekt
npm@babel/helper-globals7.29.7indirekt
npm@babel/helper-member-expression-to-functions7.29.7indirekt
npm@babel/helper-module-imports7.29.7indirekt
npm@babel/helper-module-transforms7.29.7indirekt
npm@babel/helper-optimise-call-expression7.29.7indirekt
npm@babel/helper-plugin-utils7.29.7indirekt
npm@babel/helper-replace-supers7.29.7indirekt
npm@babel/helper-skip-transparent-expression-wrappers7.29.7indirekt
npm@babel/helper-string-parser7.29.7indirekt
npm@babel/helper-string-parser8.0.0-rc.6indirekt
npm@babel/helper-validator-identifier7.29.7indirekt
npm@babel/helper-validator-identifier8.0.0-rc.6indirekt
npm@babel/helper-validator-option7.29.7indirekt
npm@babel/helpers7.29.7indirekt
npm@babel/parser7.29.7indirekt
npm@babel/parser8.0.0-rc.6indirekt
npm@babel/plugin-proposal-decorators7.29.7indirekt
npm@babel/plugin-syntax-decorators7.29.7indirekt
npm@babel/plugin-syntax-import-attributes7.29.7indirekt
npm@babel/plugin-syntax-import-meta7.10.4indirekt
npm@babel/plugin-syntax-jsx7.29.7indirekt
npm@babel/plugin-syntax-typescript7.29.7indirekt
npm@babel/plugin-transform-typescript7.29.7indirekt
npm@babel/template7.29.7indirekt
npm@babel/traverse7.29.7indirekt
npm@babel/types7.29.7indirekt
npm@babel/types8.0.0-rc.6indirekt
npm@bramus/specificity2.4.2indirekt
npm@csstools/color-helpers6.0.2indirekt
npm@csstools/css-calc3.2.1indirekt
npm@csstools/css-color-parser4.1.3indirekt
npm@csstools/css-parser-algorithms4.0.0indirekt
npm@csstools/css-syntax-patches-for-csstree1.1.5indirekt
npm@csstools/css-tokenizer4.0.0indirekt
npm@emnapi/core1.10.0indirekt
npm@emnapi/runtime1.10.0indirekt
npm@emnapi/wasi-threads1.2.1indirekt
npm@eslint-community/eslint-utils4.9.1indirekt
npm@eslint-community/regexpp4.12.2indirekt
npm@eslint/config-array0.23.5indirekt
npm@eslint/config-helpers0.6.0indirekt
npm@eslint/core1.2.1indirekt
npm@eslint/object-schema3.0.5indirekt
npm@eslint/plugin-kit0.7.2indirekt
npm@exodus/bytes1.15.1indirekt
npm@humanfs/core0.19.2indirekt
npm@humanfs/node0.16.8indirekt
npm@humanfs/types0.15.0indirekt
npm@humanwhocodes/module-importer1.0.1indirekt
npm@humanwhocodes/retry0.4.3indirekt
npm@isaacs/cliui8.0.2indirekt
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@lucide/vue1.21.0indirekt
npm@napi-rs/wasm-runtime1.1.5indirekt
npm@nodelib/fs.scandir2.1.5indirekt
npm@nodelib/fs.stat2.0.5indirekt
npm@nodelib/fs.walk1.2.8indirekt
npm@one-ini/wasm0.1.1indirekt
npm@oxc-project/types0.133.0indirekt
npm@pkgjs/parseargs0.11.0indirekt
npm@pkgr/core0.3.6indirekt
npm@polka/url1.0.0-next.29indirekt
npm@rolldown/binding-android-arm641.0.3indirekt
npm@rolldown/binding-darwin-arm641.0.3indirekt
npm@rolldown/binding-darwin-x641.0.3indirekt
npm@rolldown/binding-freebsd-x641.0.3indirekt
npm@rolldown/binding-linux-arm-gnueabihf1.0.3indirekt
npm@rolldown/binding-linux-arm64-gnu1.0.3indirekt
npm@rolldown/binding-linux-arm64-musl1.0.3indirekt
npm@rolldown/binding-linux-ppc64-gnu1.0.3indirekt
npm@rolldown/binding-linux-s390x-gnu1.0.3indirekt
npm@rolldown/binding-linux-x64-gnu1.0.3indirekt
npm@rolldown/binding-linux-x64-musl1.0.3indirekt
npm@rolldown/binding-openharmony-arm641.0.3indirekt
npm@rolldown/binding-wasm32-wasi1.0.3indirekt
npm@rolldown/binding-win32-arm64-msvc1.0.3indirekt
npm@rolldown/binding-win32-x64-msvc1.0.3indirekt
npm@rolldown/pluginutils1.0.1indirekt
npm@standard-schema/spec1.1.0indirekt
npm@tsconfig/node2424.0.4indirekt
npm@tybys/wasm-util0.10.2indirekt
npm@types/chai5.2.3indirekt
npm@types/deep-eql4.0.2indirekt
npm@types/esrecurse4.3.1indirekt
npm@types/estree1.0.9indirekt
npm@types/jsdom28.0.3indirekt
npm@types/jsesc2.5.1indirekt
npm@types/json-schema7.0.15indirekt
npm@types/node24.10.4indirekt
npm@types/node25.9.3indirekt
npm@types/tough-cookie4.0.5indirekt
npm@types/web-bluetooth0.0.18indirekt
npm@typescript-eslint/eslint-plugin8.61.0indirekt
npm@typescript-eslint/parser8.61.0indirekt
npm@typescript-eslint/project-service8.61.0indirekt
npm@typescript-eslint/scope-manager8.61.0indirekt
npm@typescript-eslint/tsconfig-utils8.61.0indirekt
npm@typescript-eslint/type-utils8.61.0indirekt
npm@typescript-eslint/types8.61.0indirekt
npm@typescript-eslint/typescript-estree8.61.0indirekt
npm@typescript-eslint/utils8.61.0indirekt
npm@typescript-eslint/visitor-keys8.61.0indirekt
npm@vitejs/plugin-vue6.0.7indirekt
npm@vitest/eslint-plugin1.6.20indirekt
npm@vitest/expect4.1.8indirekt
npm@vitest/mocker4.1.8indirekt
npm@vitest/pretty-format4.1.8indirekt
npm@vitest/runner4.1.8indirekt
npm@vitest/snapshot4.1.8indirekt
npm@vitest/spy4.1.8indirekt
npm@vitest/utils4.1.8indirekt
npm@volar/language-core2.4.28indirekt
npm@volar/source-map2.4.28indirekt
npm@volar/typescript2.4.28indirekt
npm@vue-flow/background1.3.2indirekt
npm@vue-flow/controls1.1.3indirekt
npm@vue-flow/core1.48.2indirekt
npm@vue-flow/minimap1.5.4indirekt
npm@vue-macros/common3.1.2indirekt
npm@vue/babel-helper-vue-transform-on1.5.0indirekt
npm@vue/babel-plugin-jsx1.5.0indirekt
npm@vue/babel-plugin-resolve-type1.5.0indirekt
npm@vue/compiler-core3.5.26indirekt
npm@vue/compiler-core3.5.38indirekt
npm@vue/compiler-dom3.5.26indirekt
npm@vue/compiler-dom3.5.38indirekt
npm@vue/compiler-sfc3.5.26indirekt
npm@vue/compiler-sfc3.5.38indirekt
npm@vue/compiler-ssr3.5.26indirekt
npm@vue/compiler-ssr3.5.38indirekt
npm@vue/devtools-api7.7.9indirekt
npm@vue/devtools-api8.1.2indirekt
npm@vue/devtools-core8.1.2indirekt
npm@vue/devtools-kit7.7.9indirekt
npm@vue/devtools-kit8.1.2indirekt
npm@vue/devtools-shared7.7.9indirekt
npm@vue/devtools-shared8.1.2indirekt
npm@vue/eslint-config-prettier10.2.0indirekt
npm@vue/eslint-config-typescript14.8.0indirekt
npm@vue/language-core3.3.5indirekt
npm@vue/reactivity3.5.38indirekt
npm@vue/runtime-core3.5.38indirekt
npm@vue/runtime-dom3.5.38indirekt
npm@vue/server-renderer3.5.38indirekt
npm@vue/shared3.5.26indirekt
npm@vue/shared3.5.38indirekt
npm@vue/test-utils2.4.11indirekt
npm@vue/tsconfig0.9.1indirekt
npm@vueuse/core10.5.0indirekt
npm@vueuse/metadata10.5.0indirekt
npm@vueuse/shared10.5.0indirekt
npmabbrev2.0.0indirekt
npmacorn8.17.0indirekt
npmacorn-jsx5.3.2indirekt
npmajv6.15.0indirekt
npmalien-signals3.2.1indirekt
npmansi-regex5.0.1indirekt
npmansi-regex6.2.2indirekt
npmansi-styles4.3.0indirekt
npmansi-styles6.2.3indirekt
npmansis4.3.1indirekt
npmassertion-error2.0.1indirekt
npmast-kit2.1.2indirekt
npmast-kit2.2.0indirekt
npmast-walker-scope0.9.0indirekt
npmbalanced-match1.0.2indirekt
npmbalanced-match4.0.4indirekt
npmbaseline-browser-mapping2.10.36indirekt
npmbidi-js1.0.3indirekt
npmbirpc2.9.0indirekt
npmbirpc4.0.0indirekt
npmboolbase1.0.0indirekt
npmbrace-expansion2.1.1indirekt
npmbrace-expansion5.0.6indirekt
npmbraces3.0.3indirekt
npmbrowserslist4.28.2indirekt
npmbundle-name4.1.0indirekt
npmcaniuse-lite1.0.30001799indirekt
npmchai6.2.2indirekt
npmchokidar5.0.0indirekt
npmcolor-convert2.0.1indirekt
npmcolor-name1.1.4indirekt
npmcommander10.0.1indirekt
npmconfbox0.1.8indirekt
npmconfbox0.2.4indirekt
npmconfig-chain1.1.13indirekt
npmconvert-source-map2.0.0indirekt
npmcopy-anything4.0.5indirekt
npmcross-spawn7.0.6indirekt
npmcss-tree3.2.1indirekt
npmcssesc3.0.0indirekt
npmcsstype3.2.3indirekt
npmd3-color3.1.0indirekt
npmd3-dispatch3.0.1indirekt
npmd3-drag3.0.0indirekt
npmd3-ease3.0.1indirekt
npmd3-interpolate3.0.1indirekt
npmd3-selection3.0.0indirekt
npmd3-timer3.0.1indirekt
npmd3-transition3.0.1indirekt
npmd3-zoom3.0.0indirekt
npmdata-urls7.0.0indirekt
npmdebug4.4.3indirekt
npmdecimal.js10.6.0indirekt
npmdeep-is0.1.4indirekt
npmdefault-browser5.5.0indirekt
npmdefault-browser-id5.0.1indirekt
npmdefine-lazy-prop3.0.0indirekt
npmdetect-libc2.1.2indirekt
npmeastasianwidth0.2.0indirekt
npmeditorconfig1.0.7indirekt
npmelectron-to-chromium1.5.372indirekt
npmemoji-regex8.0.0indirekt
npmemoji-regex9.2.2indirekt
npmentities6.0.1indirekt
npmentities7.0.1indirekt
npmentities8.0.0indirekt
npmerror-stack-parser-es1.0.5indirekt
npmes-module-lexer2.1.0indirekt
npmescalade3.2.0indirekt
npmescape-string-regexp4.0.0indirekt
npmeslint10.5.0indirekt
npmeslint-config-prettier10.1.8indirekt
npmeslint-plugin-prettier5.5.6indirekt
npmeslint-plugin-vue10.9.2indirekt
npmeslint-scope9.1.2indirekt
npmeslint-visitor-keys3.4.3indirekt
npmeslint-visitor-keys5.0.1indirekt
npmespree11.2.0indirekt
npmesquery1.7.0indirekt
npmesrecurse4.3.0indirekt
npmestraverse5.3.0indirekt
npmestree-walker2.0.2indirekt
npmestree-walker3.0.3indirekt
npmesutils2.0.3indirekt
npmexpect-type1.3.0indirekt
npmexsolve1.0.8indirekt
npmfast-deep-equal3.1.3indirekt
npmfast-diff1.3.0indirekt
npmfast-glob3.3.3indirekt
npmfast-json-stable-stringify2.1.0indirekt
npmfast-levenshtein2.0.6indirekt
npmfastq1.20.1indirekt
npmfdir6.5.0indirekt
npmfile-entry-cache8.0.0indirekt
npmfill-range7.1.1indirekt
npmfind-up5.0.0indirekt
npmflat-cache4.0.1indirekt
npmflatted3.4.2indirekt
npmforeground-child3.3.1indirekt
npmfsevents2.3.3indirekt
npmgensync1.0.0-beta.2indirekt
npmglob10.5.0indirekt
npmglob-parent5.1.2indirekt
npmglob-parent6.0.2indirekt
npmhookable5.5.3indirekt
npmhtml-encoding-sniffer6.0.0indirekt
npmignore5.3.2indirekt
npmignore7.0.5indirekt
npmimurmurhash0.1.4indirekt
npmini1.3.8indirekt
npmis-docker3.0.0indirekt
npmis-extglob2.1.1indirekt
npmis-fullwidth-code-point3.0.0indirekt
npmis-glob4.0.3indirekt
npmis-in-ssh1.0.0indirekt
npmis-inside-container1.0.0indirekt
npmis-number7.0.0indirekt
npmis-potential-custom-element-name1.0.1indirekt
npmis-what5.5.0indirekt
npmis-wsl3.1.1indirekt
npmisexe2.0.0indirekt
npmisexe4.0.0indirekt
npmjackspeak3.4.3indirekt
npmjiti2.7.0indirekt
npmjs-beautify1.15.4indirekt
npmjs-cookie3.0.8indirekt
npmjs-tokens4.0.0indirekt
npmjsdom29.1.1indirekt
npmjsesc3.1.0indirekt
npmjson-buffer3.0.1indirekt
npmjson-parse-even-better-errors6.0.0indirekt
npmjson-schema-traverse0.4.1indirekt
npmjson-stable-stringify-without-jsonify1.0.1indirekt
npmjson52.2.3indirekt
npmkeyv4.5.4indirekt
npmkolorist1.8.0indirekt
npmlevn0.4.1indirekt
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
npmlocal-pkg1.2.1indirekt
npmlocate-path6.0.0indirekt
npmlru-cache10.4.3indirekt
npmlru-cache11.5.1indirekt
npmlru-cache5.1.1indirekt
npmmagic-string0.30.21indirekt
npmmagic-string-ast1.0.2indirekt
npmmdn-data2.27.1indirekt
npmmemorystream0.3.1indirekt
npmmerge21.4.1indirekt
npmmicromatch4.0.8indirekt
npmminimatch10.2.5indirekt
npmminimatch9.0.9indirekt
npmminipass7.1.3indirekt
npmmitt3.0.1indirekt
npmmlly1.8.2indirekt
npmmrmime2.0.1indirekt
npmms2.1.3indirekt
npmmuggle-string0.4.1indirekt
npmnanoid3.3.12indirekt
npmnatural-compare1.4.0indirekt
npmnode-releases2.0.47indirekt
npmnopt7.2.1indirekt
npmnpm-normalize-package-bin6.0.0indirekt
npmnpm-run-all29.0.2indirekt
npmnth-check2.1.1indirekt
npmobug2.1.1indirekt
npmohash2.0.11indirekt
npmopen11.0.0indirekt
npmoptionator0.9.4indirekt
npmp-limit3.1.0indirekt
npmp-locate5.0.0indirekt
npmpackage-json-from-dist1.0.1indirekt
npmparse58.0.0indirekt
npmparse58.0.1indirekt
npmpath-browserify1.0.1indirekt
npmpath-exists4.0.0indirekt
npmpath-key3.1.1indirekt
npmpath-scurry1.11.1indirekt
npmpathe2.0.3indirekt
npmperfect-debounce1.0.0indirekt
npmperfect-debounce2.1.0indirekt
npmpicocolors1.1.1indirekt
npmpicomatch2.3.2indirekt
npmpicomatch4.0.4indirekt
npmpidtree1.0.0indirekt
npmpinia3.0.4indirekt
npmpkg-types1.3.1indirekt
npmpkg-types2.3.1indirekt
npmpostcss8.5.13indirekt
npmpostcss8.5.15indirekt
npmpostcss-selector-parser7.1.4indirekt
npmpowershell-utils0.1.0indirekt
npmprelude-ls1.2.1indirekt
npmprettier3.8.4indirekt
npmprettier-linter-helpers1.0.1indirekt
npmproto-list1.2.4indirekt
npmpunycode2.3.1indirekt
npmquansync0.2.11indirekt
npmqueue-microtask1.2.3indirekt
npmread-package-json-fast6.0.0indirekt
npmreaddirp5.0.0indirekt
npmrequire-from-string2.0.2indirekt
npmreusify1.1.0indirekt
npmrfdc1.4.1indirekt
npmrolldown1.0.3indirekt
npmrun-applescript7.1.0indirekt
npmrun-parallel1.2.0indirekt
npmsaxes6.0.0indirekt
npmscule1.3.0indirekt
npmsemver6.3.1indirekt
npmsemver7.8.4indirekt
npmshebang-command2.0.0indirekt
npmshebang-regex3.0.0indirekt
npmshell-quote1.8.4indirekt
npmsiginfo2.0.0indirekt
npmsignal-exit4.1.0indirekt
npmsirv3.0.2indirekt
npmsource-map-js1.2.1indirekt
npmspeakingurl14.0.1indirekt
npmstackback0.0.2indirekt
npmstd-env4.1.0indirekt
npmstring-width4.2.3indirekt
npmstring-width5.1.2indirekt
npmstrip-ansi6.0.1indirekt
npmstrip-ansi7.2.0indirekt
npmsuperjson2.2.6indirekt
npmsymbol-tree3.2.4indirekt
npmsynckit0.11.13indirekt
npmtinybench2.9.0indirekt
npmtinyexec1.2.4indirekt
npmtinyglobby0.2.16indirekt
npmtinyglobby0.2.17indirekt
npmtinyrainbow3.1.0indirekt
npmtldts7.4.2indirekt
npmtldts-core7.4.2indirekt
npmto-regex-range5.0.1indirekt
npmtotalist3.0.1indirekt
npmtough-cookie6.0.1indirekt
npmtr466.0.0indirekt
npmts-api-utils2.5.0indirekt
npmtslib2.8.1indirekt
npmtype-check0.4.0indirekt
npmtypescript6.0.3indirekt
npmtypescript-eslint8.61.0indirekt
npmufo1.6.4indirekt
npmundici7.27.2indirekt
npmundici-types7.16.0indirekt
npmundici-types7.24.6indirekt
npmundici-types7.27.2indirekt
npmunplugin3.0.0indirekt
npmunplugin-utils0.3.1indirekt
npmupdate-browserslist-db1.2.3indirekt
npmuri-js4.4.1indirekt
npmutil-deprecate1.0.2indirekt
npmvite8.0.16indirekt
npmvite-dev-rpc2.0.0indirekt
npmvite-hot-client2.2.0indirekt
npmvite-plugin-inspect11.4.1indirekt
npmvite-plugin-vue-devtools8.1.2indirekt
npmvite-plugin-vue-inspector6.0.0indirekt
npmvitest4.1.8indirekt
npmvscode-uri3.1.0indirekt
npmvue3.5.38indirekt
npmvue-component-type-helpers3.3.4indirekt
npmvue-demi0.14.10indirekt
npmvue-eslint-parser10.4.1indirekt
npmvue-router5.1.0indirekt
npmvue-tsc3.3.5indirekt
npmw3c-xmlserializer5.0.0indirekt
npmwebidl-conversions8.0.1indirekt
npmwebpack-virtual-modules0.6.2indirekt
npmwhatwg-mimetype5.0.0indirekt
npmwhatwg-url16.0.1indirekt
npmwhich2.0.2indirekt
npmwhich7.0.0indirekt
npmwhy-is-node-running2.3.0indirekt
npmword-wrap1.2.5indirekt
npmwrap-ansi7.0.0indirekt
npmwrap-ansi8.1.0indirekt
npmwsl-utils0.3.1indirekt
npmxml-name-validator4.0.0indirekt
npmxml-name-validator5.0.0indirekt
npmxmlchars2.2.0indirekt
npmyallist3.1.1indirekt
npmyaml2.9.0indirekt
npmyocto-queue0.1.0indirekt
PyPIasyncioindirekt
PyPIasyncstdlibindirekt
PyPIcoverallsindirekt
PyPIfabricatio-capabilitiesindirekt
PyPIfabricatio-mockindirekt
PyPIfabricatio-toolindirekt
PyPIhttpxindirekt
PyPImatplotlibindirekt
PyPImaturinindirekt
PyPImore-itertoolsindirekt
PyPImyst-parserindirekt
PyPInumpyindirekt
PyPIopenpyxlindirekt
PyPIorjsonindirekt
PyPIpandasindirekt
PyPIpipindirekt
PyPIpyarrowindirekt
PyPIpydanticindirekt
PyPIpymilvusindirekt
PyPIpyrightindirekt
PyPIpytestindirekt
PyPIpytest-asyncioindirekt
PyPIpytest-covindirekt
PyPIpytest-mockindirekt
PyPIquestionaryindirekt
PyPIrichindirekt
PyPIruffindirekt
PyPIrust-justindirekt
PyPIsphinxindirekt
PyPIsphinx-autoapiindirekt
PyPIsphinx-autodoc-typehintsindirekt
PyPIsphinx-copybuttonindirekt
PyPIsphinx-designindirekt
PyPIsphinx-intlindirekt
PyPIsphinx-rtd-themeindirekt
PyPIsphinx-togglebuttonindirekt
PyPIsphinxcontrib-mermaidindirekt
PyPItyperindirekt
PyPItypstindirekt
PyPIuvindirekt
PyPIviztracerindirekt
Abhängigkeits-Advisories 0

Die Installation von pypi:fabricatio@0.32.3 zieht 14 Pakete nach sich, direkt und transitiv: 0 tragen bekannte Advisories, davon 0 direkte Abhängigkeiten.

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": [
        "agentic-ai",
        "llm",
        "workflow",
        "ai",
        "framework",
        "harness-framework",
        "multi-agent"
      ],
      "is_fork": false,
      "size_kb": 7335,
      "has_wiki": false,
      "homepage": "https://pypi.org/project/fabricatio/",
      "languages": {
        "CSS": 3979,
        "Vue": 119764,
        "HTML": 336,
        "Just": 6320,
        "Rust": 748024,
        "Python": 1809508,
        "Dockerfile": 286,
        "Handlebars": 71697,
        "TypeScript": 35626
      },
      "pushed_at": "2026-07-25T22:15:33Z",
      "created_at": "2025-02-08T19:49:34Z",
      "owner_type": "User",
      "updated_at": "2026-07-25T22:15:22Z",
      "description": "Fabricatio is a Python library designed for building applications that leverage Large Language Models (LLMs) using an event-based agent structure. It utilizes Handlebars for templating and provides a robust framework for managing tasks, workflows, and toolboxes, enabling developers to create intelligent and efficient applications. ",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "master",
      "license_spdx_raw": "MIT",
      "primary_language": "Python",
      "significant_languages": [
        "Python",
        "Rust"
      ]
    },
    "owner": {
      "blog": null,
      "name": null,
      "type": "User",
      "login": "Whth",
      "company": null,
      "location": null,
      "followers": 3,
      "avatar_url": "https://avatars.githubusercontent.com/u/88489697?v=4",
      "created_at": "2021-08-05T11:10:03Z",
      "is_verified": null,
      "public_repos": 33,
      "account_age_days": 1815
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.33.0-dev5",
          "kind": "prerelease",
          "published_at": "2026-07-25T22:15:33Z"
        },
        {
          "tag": "v0.33.0-dev4",
          "kind": "prerelease",
          "published_at": "2026-07-24T15:04:55Z"
        },
        {
          "tag": "v0.33.0-dev3",
          "kind": "prerelease",
          "published_at": "2026-07-22T16:35:29Z"
        },
        {
          "tag": "v0.33.0-dev2",
          "kind": "prerelease",
          "published_at": "2026-07-18T09:50:12Z"
        },
        {
          "tag": "v0.33.0-dev1",
          "kind": "prerelease",
          "published_at": "2026-07-17T16:58:50Z"
        },
        {
          "tag": "v0.33.0-dev0",
          "kind": "prerelease",
          "published_at": "2026-07-05T16:03:38Z"
        },
        {
          "tag": "v0.32.3",
          "kind": "patch",
          "published_at": "2026-06-24T17:19:40Z"
        },
        {
          "tag": "v0.32.2",
          "kind": "patch",
          "published_at": "2026-06-22T17:24:50Z"
        },
        {
          "tag": "v0.32.1",
          "kind": "patch",
          "published_at": "2026-06-19T17:47:54Z"
        },
        {
          "tag": "v0.32.0",
          "kind": "minor",
          "published_at": "2026-06-19T11:16:44Z"
        },
        {
          "tag": "v0.32.0-dev8",
          "kind": "prerelease",
          "published_at": "2026-06-19T04:30:22Z"
        },
        {
          "tag": "v0.32.0-dev7",
          "kind": "prerelease",
          "published_at": "2026-06-18T17:24:29Z"
        },
        {
          "tag": "v0.32.0-dev6",
          "kind": "prerelease",
          "published_at": "2026-06-17T16:29:01Z"
        },
        {
          "tag": "v0.32.0-dev5",
          "kind": "prerelease",
          "published_at": "2026-06-17T15:06:04Z"
        },
        {
          "tag": "v0.32.0-dev4",
          "kind": "prerelease",
          "published_at": "2026-06-17T12:18:17Z"
        },
        {
          "tag": "v0.32.0-dev3",
          "kind": "prerelease",
          "published_at": "2026-06-13T18:31:03Z"
        },
        {
          "tag": "v0.32.0-dev2",
          "kind": "prerelease",
          "published_at": "2026-06-09T17:52:09Z"
        },
        {
          "tag": "v0.32.0-dev1",
          "kind": "prerelease",
          "published_at": "2026-06-08T17:29:06Z"
        },
        {
          "tag": "v0.32.0-dev0",
          "kind": "prerelease",
          "published_at": "2026-06-07T17:20:34Z"
        },
        {
          "tag": "v0.31.3",
          "kind": "patch",
          "published_at": "2026-06-03T17:57:16Z"
        },
        {
          "tag": "v0.31.2-dev3",
          "kind": "prerelease",
          "published_at": "2026-06-01T17:34:12Z"
        },
        {
          "tag": "v0.31.2-dev2",
          "kind": "prerelease",
          "published_at": "2026-05-30T20:08:09Z"
        },
        {
          "tag": "v0.31.2-dev1",
          "kind": "prerelease",
          "published_at": "2026-05-29T17:01:26Z"
        },
        {
          "tag": "v0.31.2-dev0",
          "kind": "prerelease",
          "published_at": "2026-05-25T17:28:17Z"
        },
        {
          "tag": "v0.31.0-dev3",
          "kind": "prerelease",
          "published_at": "2026-05-22T20:32:28Z"
        },
        {
          "tag": "v0.31.0-dev2",
          "kind": "prerelease",
          "published_at": "2026-05-19T17:56:05Z"
        },
        {
          "tag": "v0.31.0-dev1",
          "kind": "prerelease",
          "published_at": "2026-05-18T17:57:39Z"
        },
        {
          "tag": "v0.31.0-dev0",
          "kind": "prerelease",
          "published_at": "2026-05-17T17:29:28Z"
        },
        {
          "tag": "v0.30.4",
          "kind": "patch",
          "published_at": "2026-05-17T11:36:06Z"
        },
        {
          "tag": "v0.30.3",
          "kind": "patch",
          "published_at": "2026-05-17T01:10:22Z"
        },
        {
          "tag": "v0.30.2",
          "kind": "patch",
          "published_at": "2026-05-14T15:08:25Z"
        },
        {
          "tag": "v0.30.1",
          "kind": "patch",
          "published_at": "2026-05-12T18:20:53Z"
        },
        {
          "tag": "v0.30.0",
          "kind": "minor",
          "published_at": "2026-05-06T17:07:40Z"
        },
        {
          "tag": "v0.29.2",
          "kind": "patch",
          "published_at": "2026-05-04T21:38:26Z"
        },
        {
          "tag": "v0.29.1",
          "kind": "patch",
          "published_at": "2026-05-04T10:50:44Z"
        },
        {
          "tag": "v0.29.0",
          "kind": "minor",
          "published_at": "2026-05-01T09:48:05Z"
        },
        {
          "tag": "v0.29.0-dev2",
          "kind": "prerelease",
          "published_at": "2026-05-01T08:08:26Z"
        },
        {
          "tag": "v0.29.0-dev1",
          "kind": "prerelease",
          "published_at": "2026-04-28T18:20:16Z"
        },
        {
          "tag": "v0.29.0-dev0",
          "kind": "prerelease",
          "published_at": "2026-04-26T17:38:05Z"
        },
        {
          "tag": "v0.28.0",
          "kind": "minor",
          "published_at": "2026-04-24T17:10:11Z"
        },
        {
          "tag": "v0.28.0-dev0",
          "kind": "prerelease",
          "published_at": "2026-04-22T16:58:55Z"
        },
        {
          "tag": "v0.27.1",
          "kind": "patch",
          "published_at": "2026-04-05T17:06:51Z"
        },
        {
          "tag": "v0.27.0",
          "kind": "minor",
          "published_at": "2026-04-04T16:32:49Z"
        },
        {
          "tag": "v0.26.3",
          "kind": "patch",
          "published_at": "2026-03-28T17:44:57Z"
        },
        {
          "tag": "v0.26.2",
          "kind": "patch",
          "published_at": "2026-03-27T15:47:50Z"
        },
        {
          "tag": "v0.26.1",
          "kind": "patch",
          "published_at": "2026-03-26T17:56:48Z"
        },
        {
          "tag": "v0.26.0",
          "kind": "minor",
          "published_at": "2026-03-25T17:22:39Z"
        },
        {
          "tag": "v0.26.0-dev7",
          "kind": "prerelease",
          "published_at": "2026-03-25T16:03:53Z"
        },
        {
          "tag": "v0.26.0-dev6",
          "kind": "prerelease",
          "published_at": "2026-03-25T14:54:57Z"
        },
        {
          "tag": "v0.26.0-dev5",
          "kind": "prerelease",
          "published_at": "2026-03-25T14:32:13Z"
        },
        {
          "tag": "v0.26.0-dev4",
          "kind": "prerelease",
          "published_at": "2026-03-25T14:19:40Z"
        },
        {
          "tag": "v0.26.0-dev3",
          "kind": "prerelease",
          "published_at": "2026-03-24T17:11:10Z"
        },
        {
          "tag": "v0.26.0-dev2",
          "kind": "prerelease",
          "published_at": "2026-03-23T17:18:46Z"
        },
        {
          "tag": "v0.26.0-dev1",
          "kind": "prerelease",
          "published_at": "2026-03-22T14:46:09Z"
        },
        {
          "tag": "v0.26.0-dev0",
          "kind": "prerelease",
          "published_at": "2026-03-21T17:19:48Z"
        },
        {
          "tag": "v0.25.0-dev0",
          "kind": "prerelease",
          "published_at": "2026-01-25T16:26:45Z"
        },
        {
          "tag": "v0.24.2",
          "kind": "patch",
          "published_at": "2026-01-08T16:47:47Z"
        },
        {
          "tag": "v0.24.1",
          "kind": "patch",
          "published_at": "2026-01-03T20:01:54Z"
        },
        {
          "tag": "v0.24.0",
          "kind": "minor",
          "published_at": "2026-01-01T10:03:07Z"
        },
        {
          "tag": "v0.24.0-dev0",
          "kind": "prerelease",
          "published_at": "2026-01-01T09:19:24Z"
        },
        {
          "tag": "v0.23.1",
          "kind": "patch",
          "published_at": "2025-12-29T10:57:21Z"
        },
        {
          "tag": "v0.23.1-dev5",
          "kind": "prerelease",
          "published_at": "2025-12-29T09:49:18Z"
        },
        {
          "tag": "v0.23.1-dev4",
          "kind": "prerelease",
          "published_at": "2025-12-29T08:56:33Z"
        },
        {
          "tag": "v0.23.1-dev3",
          "kind": "prerelease",
          "published_at": "2025-12-28T18:05:40Z"
        },
        {
          "tag": "v0.23.1-dev2",
          "kind": "prerelease",
          "published_at": "2025-12-28T14:58:42Z"
        },
        {
          "tag": "v0.23.1-dev1",
          "kind": "prerelease",
          "published_at": "2025-12-26T04:05:45Z"
        },
        {
          "tag": "v0.23.1-dev0",
          "kind": "prerelease",
          "published_at": "2025-12-26T03:28:55Z"
        },
        {
          "tag": "v0.23.0",
          "kind": "minor",
          "published_at": "2025-12-25T13:38:42Z"
        },
        {
          "tag": "v0.22.3-dev5",
          "kind": "prerelease",
          "published_at": "2025-12-24T18:06:32Z"
        },
        {
          "tag": "v0.22.3-dev4",
          "kind": "prerelease",
          "published_at": "2025-12-24T11:52:56Z"
        },
        {
          "tag": "v0.22.3-dev3",
          "kind": "prerelease",
          "published_at": "2025-12-24T08:31:59Z"
        },
        {
          "tag": "v0.22.3-dev2",
          "kind": "prerelease",
          "published_at": "2025-12-24T08:04:05Z"
        },
        {
          "tag": "v0.22.3-dev1",
          "kind": "prerelease",
          "published_at": "2025-12-24T07:50:50Z"
        },
        {
          "tag": "v0.22.3-dev0",
          "kind": "prerelease",
          "published_at": "2025-12-23T18:20:43Z"
        },
        {
          "tag": "v0.22.2",
          "kind": "patch",
          "published_at": "2025-12-22T18:00:26Z"
        },
        {
          "tag": "v0.22.1",
          "kind": "patch",
          "published_at": "2025-12-22T11:50:02Z"
        },
        {
          "tag": "v0.22.0",
          "kind": "minor",
          "published_at": "2025-12-17T19:05:05Z"
        },
        {
          "tag": "v0.21.4-dev1",
          "kind": "prerelease",
          "published_at": "2025-12-17T18:57:37Z"
        },
        {
          "tag": "v0.21.4-dev0",
          "kind": "prerelease",
          "published_at": "2025-12-14T07:16:14Z"
        },
        {
          "tag": "v0.21.3",
          "kind": "patch",
          "published_at": "2025-12-09T19:21:31Z"
        },
        {
          "tag": "v0.21.2",
          "kind": "patch",
          "published_at": "2025-12-09T19:16:18Z"
        },
        {
          "tag": "v0.21.1",
          "kind": "patch",
          "published_at": "2025-11-27T14:00:38Z"
        },
        {
          "tag": "v0.21.0",
          "kind": "minor",
          "published_at": "2025-11-18T08:42:24Z"
        },
        {
          "tag": "v0.20.10",
          "kind": "patch",
          "published_at": "2025-11-13T13:28:59Z"
        },
        {
          "tag": "v0.20.10-dev0",
          "kind": "prerelease",
          "published_at": "2025-11-13T09:05:01Z"
        },
        {
          "tag": "v0.20.9-dev0",
          "kind": "prerelease",
          "published_at": "2025-11-13T08:40:05Z"
        },
        {
          "tag": "v0.20.8",
          "kind": "patch",
          "published_at": "2025-11-12T20:10:44Z"
        },
        {
          "tag": "v0.20.6",
          "kind": "patch",
          "published_at": "2025-10-09T15:23:23Z"
        },
        {
          "tag": "v0.20.5",
          "kind": "patch",
          "published_at": "2025-09-28T13:06:08Z"
        },
        {
          "tag": "v0.20.4",
          "kind": "patch",
          "published_at": "2025-09-27T06:31:01Z"
        },
        {
          "tag": "v0.20.3",
          "kind": "patch",
          "published_at": "2025-09-27T05:03:38Z"
        },
        {
          "tag": "v0.20.2",
          "kind": "patch",
          "published_at": "2025-09-27T04:39:46Z"
        },
        {
          "tag": "v0.20.1",
          "kind": "patch",
          "published_at": "2025-09-24T11:11:34Z"
        },
        {
          "tag": "v0.20.0",
          "kind": "minor",
          "published_at": "2025-09-24T11:00:05Z"
        },
        {
          "tag": "v0.19.8",
          "kind": "patch",
          "published_at": "2025-09-07T04:32:34Z"
        },
        {
          "tag": "v0.19.7",
          "kind": "patch",
          "published_at": "2025-08-15T11:08:17Z"
        },
        {
          "tag": "v0.19.6",
          "kind": "patch",
          "published_at": "2025-08-14T12:17:46Z"
        },
        {
          "tag": "v0.19.5",
          "kind": "patch",
          "published_at": "2025-08-14T11:10:25Z"
        },
        {
          "tag": "v0.19.5-dev0",
          "kind": "prerelease",
          "published_at": "2025-08-13T20:58:13Z"
        },
        {
          "tag": "v0.19.4",
          "kind": "patch",
          "published_at": "2025-08-09T19:11:35Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "38594a5a99a64e3ad2e1e1d98d8ee54d919f1e0f",
          "body": "- Update project version from 0.33.0-dev4 to 0.33.0-dev5 in pyproject.toml",
          "is_bot": false,
          "headline": "chore(release): bump version to 0.33.0-dev5",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-25T22:15:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2b4937df6615534e20b5df3d1016527b69fbaaa3",
          "body": "…queries\n\n- Changed default parameter k from 8 to 6 in last_paragraph function\n- Fixed slice operation from paragraphs[-k] to paragraphs[-k:] to return multiple paragraphs\n- Added _fetch_query helper function in tests to mirror production query building logic\n- Updated test cases to use _fetch_query\n[…]\nches instead of exact matches\n- Added requirement parameters to test queries for proper reranking simulation\n- Updated chapter_requirement.hbs template with clearer instructions for chapter continuity",
          "is_bot": false,
          "headline": "fix(utils): correct last_paragraph function behavior and update test …",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-25T22:05:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8fc33181763c9e9fac7da7f656fd739a7f0348fd",
          "body": "…ching\n\n- Add asyncio import for concurrent operations\n- Import Scene model for type annotations\n- Replace sequential loop with concurrent task execution\n- Create _inject_script helper function for chapter-level injection\n- Create _inject_scene helper function for scene-level injection\n- Use asyncio.gather to run all fetch operations concurrently\n- Maintain original functionality while improving performance\n- Update package version from 0.11.1 to 0.11.2",
          "is_bot": false,
          "headline": "perf(novel_rag): optimize writing style injection with concurrent fet…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-25T21:51:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "732371f5b1f7fe2842e6d55a192098ac1015eddb",
          "body": "…aphs\n\n- Fixed last_paragraph function to return last k paragraphs instead of just the last one\n- Added parameter k with default value 8 to control number of paragraphs returned\n- Updated function logic to join multiple paragraphs with newlines\n- Corrected typo in template guidance about not copying paragraphs to chapter start",
          "is_bot": false,
          "headline": "fix(utils): correct last_paragraph function to return multiple paragr…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-25T21:17:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8879f492cd7d1e8998c65ccde7c77c2e540f12cc",
          "body": "…ation\n\n- Import chunked_batch_call utility function in usages.py\n- Add max_batch_emb_size parameter to EmbeddingKwargs model\n- Implement chunked batch processing for embedding calls using asyncio.gather\n- Replace direct embedding call with chunked_batch_call wrapper\n- Set default max_batch_emb_size to 10 for embedding operations\n- Update project version to 0.10.5 in pyproject.toml",
          "is_bot": false,
          "headline": "feat(embeddings): add batch processing capability for embedding gener…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-25T20:56:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a96973cc737d7035ca4b0c2c9f7cf69fc68be505",
          "body": "- Removed unnecessary List type annotation from search results\n- Fixed document model conversion to properly apply from_raw method to flattened results\n- Updated package version from 0.3.2 to 0.3.3",
          "is_bot": false,
          "headline": "fix(lancedb): correct document model conversion in search results",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-25T20:55:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1f8d2376e5179456cac5b08994365dd1062f0376",
          "body": "…tion\n\n- Remove use_refined_query and refined_query_count convenience overrides\n- Simplify WritingStyleFetchConfig to use explicit config or default only\n- Remove override_kwargs utility function dependency\n- Clean up command line options for query refinement in rag commands\n- Remove unused RetrieveWritingStyles and InjectWritingStyleToScript actions\n- Update version to 0.11.1 in pyproject.toml",
          "is_bot": false,
          "headline": "refactor(novel): remove query refinement features from RAG implementa…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-25T20:25:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1fec61b6203e36b5eb83e682c6c96f2cba53f3ff",
          "body": "- Added rust-toolchain.toml to specify nightly toolchain version\n- Set toolchain channel to nightly-2026-07-06 for consistent builds\n- Ensures all developers use the same Rust compiler version",
          "is_bot": false,
          "headline": "chore(toolchain): add rust toolchain configuration",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-25T20:15:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "39aeabe3d785f6ea52ed1af699cc04534444838e",
          "body": "…ontinuity\n\n- Remove deprecated use_reranker flag and related configurations\n- Rename writing_style_query to writing_style_requirement for clarity\n- Add previous_chapter_tail to maintain narrative continuity between chapters\n- Introduce last_paragraph utility for extracting final paragraph of prior \n[…]\n names\n- Remove unused kwargs types and template configurations\n- Enhance chapter generation with rolling context including last paragraph\n- Add comprehensive tests for last_paragraph utility function",
          "is_bot": false,
          "headline": "refactor(novel): update RAG and mental state handling with improved c…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-25T20:14:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "969a89bd7dece644e897e80445de0c9e2fed6ef6",
          "body": null,
          "is_bot": false,
          "headline": "fix(core): forbid to send empty rerank query",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-24T15:04:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b82dbd7cd0f995384c29822b6d9bd28ec4e9284f",
          "body": "- Import BoundedSemaphore from threading module\n- Create global COMPILE_SEM semaphore with limit of 3\n- Wrap maturin develop command execution with semaphore lock\n- Ensure only 3 concurrent compilation processes at maximum\n- Prevent resource exhaustion during parallel builds\n- Maintain existing build success handling logic",
          "is_bot": false,
          "headline": "refactor(build): add thread safety to maturin compile operations",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-23T16:58:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "325c17fba20a26ca7f000a7730cd13e3cbc57dc4",
          "body": "…etion\n\n- Replace abstract RAG testing items with fabricatio-anki image support features\n- Mark character system completion as wired into novel chapter generation\n- Consolidate extensive mental model engine implementation details into summary\n- Add personality archetypes and evaluation framework as remaining tasks\n- Include mental novel generation integration with completed capabilities listed\n- Remove judge integration items from roadmap scope",
          "is_bot": false,
          "headline": "refactor(docs): update project roadmap with mental model engine compl…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-22T16:34:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "466b67d8ccde6372d2fe4786fa46758e8f8da370",
          "body": "- Remove placeholder based multiple-agents edits from todo list\n- Update character system completion status to completed\n- Mark batch character generation and validation as completed\n- Mark mental model implementation as completed\n- Adjust task hierarchy for character relationship tracking section\n- Update checklist items to reflect current development progress",
          "is_bot": false,
          "headline": "docs(readme): update project roadmap and task completion status",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-22T16:19:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5529350603769a7e9a3766ebff6b0e5c634c60c8",
          "body": "- Move FrameAspect StrEnum from fabricatio_novel to fabricatio_comfyui workflow module\n- Add comprehensive test suite for FrameAspect enum values and methods\n- Implement ratio property and to_dimensions method for aspect calculations\n- Update RESOLUTION_SELECTOR_ASPECT_RATIOS to use FrameAspect enum\n[…]\nel package\n- Bump versions across packages including fabricatio-comfyui (0.3.4->0.3.5)\n- Bump fabricatio-novel version from 0.10.5 to 0.10.6\n- Bump main project version from 0.33.0-dev2 to 0.33.0-dev3",
          "is_bot": false,
          "headline": "refactor(workflow): move FrameAspect enum from novel to workflow module",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-22T16:08:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b8913509f1c1c1e43cfa807bd4dc9e32d2700ca7",
          "body": "…ector\n\n- Introduce RESOLUTION_SELECTOR_ASPECT_RATIOS constant with valid aspect ratio values\n- Add validation in set_chart_proportion to check aspect_ratio against allowed values\n- Update docstrings to reference the new validation requirement\n- Include ValueError exception for invalid aspect_ratio \n[…]\nlidation test between FrameAspect and ResolutionSelector enums\n\nchore(release): bump package versions\n\n- Increment fabricatio-comfyui from 0.3.3 to 0.3.4\n- Increment fabricatio-novel from 10.4 to 10.5",
          "is_bot": false,
          "headline": "feat(workflow): add aspect ratio validation for ComfyUI ResolutionSel…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-21T17:11:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4f6af461825e91716e132326fca7d07a56460765",
          "body": "…lculations\n\n- Add math.sqrt import for dimension calculations\n- Move megapixel to dimension logic from capability helper into FrameAspect enum\n- Calculate width and height based on aspect ratio and megapixels\n- Apply 8-pixel alignment for ComfyUI compatibility\n- Enforce 64-pixel minimum on both axe\n[…]\nts to use new enum method instead of helper function\n- Rename test class from TestMegapixelsToDimensions to TestFrameAspectDimensions\n- Fix assertion formatting in workflow test for better readability",
          "is_bot": false,
          "headline": "feat(illustration): add FrameAspect.to_dimensions method for pixel ca…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-19T17:50:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8447bb256a3df70c1e3ce0e26a6b35ab983429d9",
          "body": "…trationConstrain model",
          "is_bot": false,
          "headline": "feat(novel): type illustration constrain via FrameAspect enum + Illus…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-19T17:41:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "13845db8f580a8b3b694c4ab6f80a2b54bb20dec",
          "body": "- Introduce global_writing_constraint field to Draft model for novel-wide rules\n- Add global writing constraints to novel capability prompt template\n- Include global constraints in novel mental state capability context\n- Initialize global_writing_constraint in all test cases with empty string\n- Upda\n[…]\nint usage for POV, tone, and structural consistency\n- Ensure chapter writers honor global constraints as hard requirements\n- Separate novel-level rules from chapter-specific overrides in documentation",
          "is_bot": false,
          "headline": "feat(novel): add global writing constraints for consistent novel styling",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-19T10:10:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "aecc938669f18038a0fb39b8c62a73b6537ab63b",
          "body": "- Added change_default and no_default utility functions in fabricatio_core.utils\n- Replaced all override_kwargs(kwargs, default=None) calls with no_default(kwargs)\n- Updated imports across multiple files to include the new no_default function\n- Simplified default parameter handling by using the new no_default utility\n- Maintained same functionality while improving code clarity and type safety\n- Removed redundant override_kwargs usage throughout the codebase",
          "is_bot": false,
          "headline": "refactor(utils): replace override_kwargs with no_default function",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-19T09:37:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8c56b1edb4cff95e31b794284543fea4205a90e7",
          "body": "- Add effort field to fabricatio-config CompletionConfig with validation\n- Update fabricatio-router to include effort in completion request signatures\n- Add effort parameter to thryd OpenAI model implementation with fallback handling\n- Include effort in generic model parameters and configuration res\n[…]\ntio-core router usage functions and overloads\n- Bump fabricatio-config from 0.4.3 to 0.4.4 and thryd from 0.7.1 to 0.7.2\n- Create new fabricatio-router crate with proper dependencies and version 0.1.3",
          "is_bot": false,
          "headline": "feat(config): add reasoning effort parameter support across components",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-18T09:49:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "18856e9f6aa3db96c40ccf74841cbce0904bf890",
          "body": "- Configure project metadata including name, version, description, and authors\n- Set up dependencies and optional dependency groups for various features\n- Integrate maturin build system for Rust-Python bindings\n- Configure development tools including ruff, pytest, and pyright\n- Define workspace memb\n[…]\nices for uv package manager\n- Set up comprehensive linting and formatting rules with ruff\n- Configure testing options and asyncio settings\n- Establish dependency groups for dev and documentation tools",
          "is_bot": false,
          "headline": "chore(project): add pyproject.toml configuration for fabricatio package",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-18T08:21:38Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a0aba26d020508a70d0a2d1631d690084aa7b62c",
          "body": "- Add comment explaining asyncio.gather concurrency behavior with dummy mock\n- Implement content-based matching instead of order-based matching for test results\n- Create mapping dictionary to match results by issue_to_judge field\n- Update test loop to use expected issue_to_judge as lookup key\n- Maintain existing assertion logic while ensuring deterministic test execution\n- Address LIFO response queue ordering issues under concurrent access",
          "is_bot": false,
          "headline": "fix(tests): resolve non-deterministic test failures in capable module",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-18T08:21:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c7c1bfb2b6c863e55b2a45c498945efe055f4aeb",
          "body": "…classes\n\n- Reorder imports in configs.rs for better organization\n- Add is_agent_variant function to validate agent variants in constants\n- Introduce Not operator import for boolean operations\n- Refactor resolve_llm_variant to return cloned strings instead of references\n- Add comprehensive generic m\n[…]\nnfig, and related subclasses\n- Implement fallback and hold-to mechanisms for configuration hierarchies\n- Add JSON schema generation and validation utilities\n- Update package version from 0.1 to 0.10.2",
          "is_bot": false,
          "headline": "feat(config): enhance agent variant resolution and add generic model …",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-18T08:01:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1e6d4daf8d27fc992752e00d7b120ed2707b0de9",
          "body": "- Added pyproject.toml with project metadata and dependencies\n- Removed fallback_kwargs import from fabricatio_core.utils\n- Removed fallback_kwargs usage in AdvancedJudge.judge method\n- Configured build system with hatchling for wheel distribution\n- Set up dependency groups for development including pytest and mock\n- Added multiple PyPI mirrors for faster package installation",
          "is_bot": false,
          "headline": "feat(judge): add pyproject.toml configuration and remove fallback kwargs",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-18T06:31:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a00c820d5d36ea0a650345812ebe25db22b97bd",
          "body": "- Added documentation for the 'send_to' parameter in the novel capability module\n- Removed unnecessary blank line in the test module that was causing formatting issues\n- Improved code clarity by adding missing type information for the send_to parameter",
          "is_bot": false,
          "headline": "docs(novel): update docstring with missing parameter documentation",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-17T17:41:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0c6ed9b632a629711526423daf6cbe50449aadbe",
          "body": "- Introduce writing_constrain field to draft model with detailed documentation\n- Add writing_constrain parameter to novel capability prompt generation\n- Include writing_constrain in novel mental state prompt template\n- Create dedicated template block for chapter writing constraints enforcement\n- Update novel draft requirement template to generate per-chapter constraints\n- Define comprehensive constraint categories including style, must-include, must-avoid, and structural limits",
          "is_bot": false,
          "headline": "feat(novel): add per-chapter writing constraints feature",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-17T17:38:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b5ac7c0a95bb563a1a60ac3d834679779c832ce3",
          "body": "…tion\n\n- Add _first_checkpoint helper to fetch available checkpoints from live server\n- Implement _requires_checkpoint decorator for conditional test execution\n- Create _fresh_client utility for proper per-test event loop management\n- Replace hardcoded checkpoint names with dynamic detection in integration tests\n- Update test clients to use fresh instances instead of cached ones\n- Add proper cleanup with client connection pool closure\n- Remove redundant assertion for all_images length",
          "is_bot": false,
          "headline": "test(comfyui): update integration tests with dynamic checkpoint detec…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-17T16:57:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "95b2ec320478691a0f4329a196c3981b7e1b8ee0",
          "body": "- Remove unused send_to parameter from character composition methods\n- Add EvidentlyJudge class with evidence-based judging functionality\n- Implement VoteJudge class with LLM-based voting and threshold evaluation\n- Add concurrent execution for multiple judgments using asyncio.gather\n- Introduce VoteLLMConfig for specifying voting models and thresholds\n- Replace uuid.uuid7 with uuid.uuid4 in test files for compatibility\n- Implement resolve_pass method for weighted vote calculation logic",
          "is_bot": false,
          "headline": "feat(judge): add advanced judging capabilities with voting mechanism",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-17T16:37:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7d69f2dab1396636c1607db62b8eebf9bd3f4ca0",
          "body": "- Updated project version in pyproject.toml from 0.33.0-dev0 to 0.33.0-dev1",
          "is_bot": false,
          "headline": "chore(version): bump development version from 0.33.0-dev0 to 0.33.0-dev1",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-16T17:20:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f1c7e33f77e93a883826a3611effd1d28c42fc5a",
          "body": "- Fixed missing comma in keyword arguments for aask_validate call\n- Ensured proper unpacking of kwargs in the method invocation\n\nfeat(novel): enhance writing style imitation with QA documentation\n\n- Updated global prompt to include writing style QA documentation requirement\n- Modified script-level p\n[…]\n-level prompting for consistent writing style application\n- Integrated QA documentation injection at both script and scene levels\n- Improved quality assurance through better style guidance propagation",
          "is_bot": false,
          "headline": "fix(core): correct keyword argument passing in propose capability",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-16T17:19:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a58c7833c57a8f589f2003d4de5174265c2e7215",
          "body": "…load support\n\n- Implemented CharacterCompose class inheriting from Propose and ABC\n- Added compose_characters method with four overloads for different input types\n- Support for single character requirement string input\n- Support for multiple character requirements via list input\n- Implementation ha\n[…]\n with SMOL target routing\n- Improved resource allocation by directing specific operations to appropriate LLM instances\n- Maintained existing functionality while adding targeted processing capabilities",
          "is_bot": false,
          "headline": "feat(character): add character composition capability with multi-over…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-15T17:23:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a725a20e47d639eb615fd40623e0ffeb3338531c",
          "body": null,
          "is_bot": false,
          "headline": "feat: enforce the send_to to fabricatio-judge",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-14T17:54:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c1c48d83fdb94e9113339d3c9fc53e0826beb2ec",
          "body": null,
          "is_bot": false,
          "headline": "feat: enforce the send_to to fabricatio-core",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-14T17:54:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "edcc3e2f22e6bfd248598cc7721343213e4537b0",
          "body": null,
          "is_bot": false,
          "headline": "chore: docstirng for the constants",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-14T17:53:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c8761af850297a9b6e201b65e367580edf5ce9eb",
          "body": "- Removed AgentVariant enum and strum dependency from fabricatio-config\n- Added agent_variant string constants to fabricatio-constants\n- Updated resolve_llm_variant to accept string parameter instead of enum\n- Modified configure_llm_variant to validate string input with PyValueError\n- Updated Python\n[…]\ntubs to remove AgentVariant and add constant exports\n- Changed image parameters in router functions to accept optional byte lists\n- Updated router usage structs to handle optional image data correctly",
          "is_bot": false,
          "headline": "refactor(config): replace AgentVariant enum with string constants",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-14T16:51:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "97b69320b733c59c2a3b508e888fe5d571451577",
          "body": "…functions\n\n- Replace basic Mapping[str, Any] with TypedDict and Unpack for better type safety\n- Add proper generic type parameters to override_kwargs and fallback_kwargs functions\n- Update import statements to include TypedDict, Unpack, and cast from typing module\n- Import ValidateKwargs from models.kwargs_types for enhanced type checking\n- Change agent parameter to send_to in advanced judge capability call\n- Update AgentVariant usage to call to_str() method for string conversion",
          "is_bot": false,
          "headline": "refactor(utils): update type hints and parameter handling in utility …",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-13T16:56:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c980f50d22ae303d1ca31e27b90769e1100b054c",
          "body": "…eatures\n\n- Fixed line wrapping issues in Python execution bridge task description\n- Improved formatting of real-time LLM token streaming task\n- Enhanced readability of VirtualFS implementation details\n- Updated cognitive engine and personality modeling task descriptions\n- Reformatted TTS package in\n[…]\nons\n- Improved structure of session replay and workflow continuation features\n- Enhanced multimodal LLM support documentation\n- Added completed task for variant-based LLM selection and standardization",
          "is_bot": false,
          "headline": "docs(readme): update documentation with improved formatting and new f…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-13T16:48:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0cf5c60521486cd488a94b67dd90a64b8431844b",
          "body": "- Add Display and EnumString derives to AgentVariant enum\n- Implement to_str and create_from_str methods for string conversion\n- Update resolve_llm_variant to accept Option<AgentVariant> parameter\n- Add strum dependency for enum string conversions\n- Bump fabricatio-config version to 0.4.3\n- Remove unused agent field from LLMKwargs in Python bindings\n- Update Python generic model to use new AgentVariant string conversion\n- Generate comprehensive Python stubs for rust modules",
          "is_bot": false,
          "headline": "feat(config): enhance AgentVariant enum with string conversion methods",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-13T16:43:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5eb99661098b88153918a83837f2aa574bd491a8",
          "body": "- Add configure_llm_variant function to set different agent variants\n- Support Tiny, Smol, Task, Slow, and Plan agent types\n- Allow optional target parameter for each variant\n- Update Python type stubs with new method signature\n- Bump fabricatio-core version from 0.9.1 to 0.10.0\n- Bump fabricatio-judge version from 0.1.13 to 0.2.0\n- Reorder imports in advanced_judge.py for consistency",
          "is_bot": false,
          "headline": "feat(config): add LLM variant configuration method",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-12T16:41:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2a500be385ba1ebaf9a63475841c0861034ce278",
          "body": "- Add overload method for propose function to support multiple return types\n- Import AgentVariant from rust module for agent selection\n- Import fallback_kwargs utility function for parameter handling\n- Modify judge method to use fallback_kwargs with Tiny agent variant\n- Update imports to include new utility functions and types",
          "is_bot": false,
          "headline": "feat(judge): enhance judge capability with agent variant selection",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-12T16:27:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1cff80134535c68332ff3bdf6789bb632f9200ba",
          "body": "- Make AgentVariant enum public in Rust configuration module\n- Import AgentVariant in Python generic models module\n- Add agent parameter to LLMKwargs with conditional send_to resolution\n- Include AgentVariant in RouteKwargs and LLMKwargs type definitions\n- Register AgentVariant class in Python module initialization\n- Implement resolve_llm_variant method for agent-based routing logic",
          "is_bot": false,
          "headline": "feat(config): expose AgentVariant enum to Python bindings",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-12T16:14:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f0e6883fc6c80a8f706afe8b586dc613b07c0562",
          "body": "…lution\n\n- Introduce Agent struct with named slots for different model types (tiny, smol, task, slow, plan)\n- Add AgentVariant enum to represent configurable model roles and task profiles\n- Include agent field in Config struct with corresponding getter for Python bindings\n- Implement resolve_llm_var\n[…]\n class definitions\n- Change image parameter type from List[bytes] to Sequence[bytes] across all relevant methods\n- Set default value for images parameter to empty list instead of None in async methods",
          "is_bot": false,
          "headline": "feat(config): add agent configuration support with model variant reso…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-12T15:56:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "22757937abbb53e0d9713a44f74c32c8c01a3588",
          "body": "- Removed TestCLIRefinedQueryFlags class and its methods\n- Added _long_opts_for helper function to get CLI options by subcommand\n- Replaced CLI integration tests with utility function for option assertions\n- Removed dependency on terminal width and Rich truncation behavior\n- Centralized CLI option extraction logic for better test maintainability\n- Preserved assertion functionality while improving test reliability",
          "is_bot": false,
          "headline": "refactor(tests): replace CLI flag tests with helper function",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-12T14:39:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a98dbac4387b46839d6bf9ebf4ef9361fdd58f1b",
          "body": "- Add mandatory writing style imitation prompt to global context\n- Ensure style guidance is applied before script-level document injection\n- Maintain existing multi-query fetching and document processing logic\n- Preserve debug logging for chapter-based style injection tracking",
          "is_bot": false,
          "headline": "feat(novel_rag): inject writing style guidance before script processing",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-12T14:37:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7dd40df5657f8e0cacaeef8685200cfbff041813",
          "body": null,
          "is_bot": false,
          "headline": "chore: fix tests",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-08T17:46:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "99eb830f8ac8ccba0785e2a30d2fa9d70e157778",
          "body": "…ache\n\nThree root causes were addressed in test_enrich.py:\n\n1. Pydantic v2 metaclass blocks class-level access on declared fields,\n   so `StoreEnrichedTexts.output_key == \"stored_count\"` raised\n   AttributeError. Read default from model_fields[\"output_key\"].default.\n\n2. Pydantic v2 disallows arbitra\n[…]\ne and TestStoreEnrichedTextsEnrichPatched\ngroups exercise only the enrich → storage contract; previously they\nrelied on precise_chunk's None-splits fallback when the LLM mock\nreturned non-int content.",
          "is_bot": false,
          "headline": "test(novel): fix StoreEnrichedTexts execute tests for Pydantic v2 + c…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-08T15:28:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "798ab9a46a136e6e4225d205b8ad59d465e8e10a",
          "body": "- Removed unnecessary raw field access when extracting text content\n- Changed from v.raw.as_text() to direct v.as_text() method call\n- Maintained same functionality while improving code readability\n- Reduced redundant field navigation in the mapping operation",
          "is_bot": false,
          "headline": "refactor(mcp): simplify text extraction in content processing",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-07T15:40:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e04e8820c221e8aa035bedbb269ef743bd42c51f",
          "body": "- Updated mcp-manager from version 0.1.4 to 0.1.5 with rmcp dependency upgrade from 1.7.0 to 2.1.0\n- Updated thryd from version 0.7.0 to 0.7.1 with async-openai dependency from 0.41.0 to 0.41.1\n- Updated handlebars in fabricatio-core from 6.4.1 to 6.4.2\n- Updated lancedb in fabricatio-lancedb from 0\n[…]\nr, git2, pythonize, and others\n- Added new macro-utils crate for procedural macro utilities\n- Added new fabricatio-memory crate for memory management with tantivy, moka, and serialization dependencies",
          "is_bot": false,
          "headline": "chore(deps): update dependencies and add new crates",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-06T16:48:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "621e4027e4f779b77afa3684796738584679cb3f",
          "body": "- Updated project version from 0.32.3 to 0.33.0-dev0 in pyproject.toml",
          "is_bot": false,
          "headline": "chore(version): bump version to 0.33.0-dev0",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-05T16:02:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4341b41ca0e7b84d0d865b30eaeba063c48331ff",
          "body": "- Updated version from 0.4.0 to 0.4.1 in pyproject.toml\n- Removed unnecessary line breaks in novel_rag.py method signature\n- Simplified WritingStyleFetchConfig instantiation logic\n- Consolidated multiline string formatting in log messages",
          "is_bot": false,
          "headline": "chore(version): bump fabricatio-webui version to 0.4.1",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-05T16:01:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "538c8bbf2ff05f4be7e2c3a9a764b4cbd2e51688",
          "body": "…ingsDrawer\n\n- EditorToolbar: cast $event.target to HTMLInputElement in @focus so\n  vue-tsc accepts .select() (avoids TS18047 null and TS2339 EventTarget).\n- SettingsDrawer: move navigator/localStorage access out of the template\n  into script-setup refs and handlers (gridSnap, autosave, maxHistory\n  + copyServerUrl / on*Change). vue-tsc type-checks template expressions\n  against the component proxy, so DOM globals must be reached from\n  script-setup scope where they resolve correctly.",
          "is_bot": false,
          "headline": "fix(webui-frontend): resolve vue-tsc errors in EditorToolbar and Sett…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-05T15:50:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2f7252e1b30a4ca3dccb917a4a7fc24b1b3236ab",
          "body": "- Implement Skill YAML/JSON schema with loader and directory scanner\n- Integrate skills into Role with validation and example files\n- Add comprehensive tests for skill system functionality\n- Update README to reflect completed skill system features\n\nrefactor(memory): improve memory implementation\n\n- \n[…]\n standalone fabricatio-router crate\n\n- Move Router from fabricatio-core to dedicated router crate\n- Implement concurrent safe Thryd router usage\n- Update build workflow to use Justfile for consistency",
          "is_bot": false,
          "headline": "feat(skills): complete texts-based skill system implementation",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-05T12:24:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "25ce9fc5e651ea00ed5032d1bf791ab441f83f6f",
          "body": "…d JSON files\n\n- Introduce LoadNovelFromPersistent action to load novels from disk\n- Add 'i' CLI command for illustrating from persisted novel files\n- Create IllustrateLoadedNovelWorkflow for load-then-illustrate pipeline\n- Update CLI documentation to include new 'i' command option\n- Bump package version from 0.1 to 0.10.2",
          "is_bot": false,
          "headline": "feat(illustration): add capability to illustrate novels from persiste…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-05T12:24:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1c79ad9b547dbc6d00a069b9e29f99c620e7fb1a",
          "body": "…ration UI\n\n- Add ExecutionPanel component with real-time execution monitoring\n- Implement WebSocket subscription for live execution updates\n- Create FabricatioNode component with status indicators and streaming preview\n- Add NodeConfigPanel for detailed node configuration and editing\n- Implement ex\n[…]\necution states (queued, running, done, error)\n- Create responsive layout with collapsible sections\n- Add error handling and display capabilities\n- Implement proper TypeScript typing for all components",
          "is_bot": false,
          "headline": "feat(workflow): add comprehensive workflow execution and node configu…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-05T11:42:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4c2e510d83e3ff1e68bc84747aa692326db7bf9a",
          "body": "…finitions\n\n- Replace inline command implementations with import-based registration system\n- Add comprehensive module documentation explaining command structure and layout\n- Remove duplicate helper functions and command logic from main CLI file\n- Streamline imports and reduce file size from 1484 lines to 36 lines\n- Maintain existing command functionality through separate command modules\n- Update module docstring to reflect new architecture with command submodules",
          "is_bot": false,
          "headline": "refactor(cli): simplify CLI entry point by removing inline command de…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-05T11:41:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9340ad8f3ee8ca26b3d12e8fc1e69b6e848293da",
          "body": null,
          "is_bot": false,
          "headline": "chore(novel): bump version to 0.10.0",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-03T17:35:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c9046fad20388d8f5fdd0ee30acb1138b0f700ae",
          "body": null,
          "is_bot": false,
          "headline": "test(novel): add tests for refined-query RAG wiring",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-03T17:35:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "16e14a62b0df4bace5730ec6ee852df520ae98b4",
          "body": null,
          "is_bot": false,
          "headline": "style(novel): drop stray blank line in novel_enrich workflow",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-03T17:35:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6299f7aaf3871ca2e0c0e480288a667a6f78eca3",
          "body": null,
          "is_bot": false,
          "headline": "feat(novel): add --use-refined-query flags to wr/wrm/wri commands",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-03T17:34:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fad161fd2b717c1e87e266f5bf95691cc94a6778",
          "body": null,
          "is_bot": false,
          "headline": "feat(novel): expose refinement convenience fields on RAG action",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-03T17:34:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5b822d9c0a05df537ca2a3957284c577eb118f23",
          "body": "…leToScript actions",
          "is_bot": false,
          "headline": "refactor(novel): remove unused RetrieveWritingStyles/InjectWritingSty…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-03T17:33:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2643c1c317dafc3871201f9e63b2a39c11fbbc1c",
          "body": null,
          "is_bot": false,
          "headline": "feat(novel): add refined-query and multi-query fetch to NovelComposeRAG",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-03T17:30:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "54a8612641f5d89d34fe1a4eb8c51315c1cdf09a",
          "body": null,
          "is_bot": false,
          "headline": "feat(novel): expose writing_style_query on NovelRAGKwargs",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-03T17:30:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "be7ee2853166ae805d8483fb6a6e9feb29400a90",
          "body": null,
          "is_bot": false,
          "headline": "feat(novel): add WritingStyleFetchConfig refined-query fields",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-03T17:29:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2894cb420260b2f98262eac818da80a9619a5ee7",
          "body": null,
          "is_bot": false,
          "headline": "chore(novel): bump version to 0.9.0",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-02T17:08:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "583ddb9197d9190adfb87113c50372f24797213d",
          "body": "…ichedTexts",
          "is_bot": false,
          "headline": "test(novel): add integration tests for enrich capability and StoreEnr…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-02T17:08:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e6ad824b4148e9bba7aed7ecd18f2ce38138d211",
          "body": "… CLI command",
          "is_bot": false,
          "headline": "feat(novel): add StoreEnrichedTexts action, workflow, and enrich-refs…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-02T17:08:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5c660e2ab091b714b76c359a64adc20c0a2c8248",
          "body": "…odel, and NovelConfig",
          "is_bot": false,
          "headline": "feat(novel): add EnrichChunkTextNovel capability, enriched document m…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-02T17:08:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "68287ff73784200c801bf7f7f1f42ad8132e10b5",
          "body": null,
          "is_bot": false,
          "headline": "chore(diff): bump version to 0.4.0",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-02T17:07:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0fcea8105648d86267e9fb19a1ac0c811601b0fa",
          "body": null,
          "is_bot": false,
          "headline": "test(diff): add tests for HashlineEdit capability",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-02T17:07:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e867d3ab3c630cb8b8e4f9a0221fe46ef4cd27f7",
          "body": null,
          "is_bot": false,
          "headline": "feat(diff): add HashlineEdit capability with LLM self-correcting loop",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-02T17:07:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "99d570e20c43491c00d62234f61e35d22fb2c517",
          "body": "…iffConfig",
          "is_bot": false,
          "headline": "feat(diff): add hashline_diff and hashline_judge template fields to D…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-02T17:07:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4d2e3acef95adbb36115af4ce9cd32c8307ff0e1",
          "body": "…er exports",
          "is_bot": false,
          "headline": "feat(diff): add HashLineType vocabulary and per-pair ContentBlockPars…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-02T17:07:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a1e896291dfb8597bf082573cc846dcc44304cb0",
          "body": null,
          "is_bot": false,
          "headline": "chore(rag): bump version to 0.6.0",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-02T17:07:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a3bf5245a2fc31ae2f704b9ecd700e318811cca6",
          "body": "…nkText",
          "is_bot": false,
          "headline": "test(rag): add tests for PreciseChunkText, CleanCorpus, and EnrichChu…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-02T17:06:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "57df0911e679d9024585e096c2020d015b0b1f86",
          "body": null,
          "is_bot": false,
          "headline": "feat(rag): add EnrichChunkText capability for LLM-generated QA pairs",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-02T17:06:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "22617a0c44488ab6a338324dd9bb6a33b18e05fe",
          "body": "…giene",
          "is_bot": false,
          "headline": "feat(rag): add CleanCorpus capability and action for pre-embedding hy…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-02T17:06:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48557f54cf277df1d1a341e2d37f21d6df85995e",
          "body": "…chunking",
          "is_bot": false,
          "headline": "feat(rag): add PreciseChunkText capability and action for LLM-guided …",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-02T17:05:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c75a9ba4015f2b85726869e7161740d9bb283f04",
          "body": "…rich_qa",
          "is_bot": false,
          "headline": "feat(rag): add QAModel and template settings for precise_chunk and en…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-02T17:05:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7bae940b2aacf453bbec24f183150cb62c2e0630",
          "body": "…a, enriched_as_prompt",
          "is_bot": false,
          "headline": "feat(templates): add rag prompt templates for precise_chunk, enrich_q…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-02T17:05:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f69fea0f72680bd5a5de22b4655f74e97bac94d8",
          "body": "- Generate comprehensive type annotations for all exported symbols\n- Include detailed docstrings for classes and methods\n- Add proper type hints for function parameters and return values\n- Define type variables and generic constraints\n- Document all configuration structures and their properties\n- Sp\n[…]\nsync return types for coroutine functions\n- Add overload signatures for polymorphic methods\n- Include enum definitions and constant declarations\n- Provide proper typing for callback and event handlers",
          "is_bot": false,
          "headline": "feat(python): add Python type stubs for Rust bindings",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-07-02T16:37:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a0cf81585a286d20f591aa1d031cbe940afd24a5",
          "body": "- Update fabricatio-diff from version 0.2.11 to 0.3.0\n- Update fabricatio-rag from version 0.4.3 to 0.5.0\n- Add chunk dependency group with fabricatio-diff\n- Add clean dependency group with fabricatio-diff\n- Maintain existing dev and rag dependencies unchanged",
          "is_bot": false,
          "headline": "chore(version): bump package versions and add chunk/clean dependencies",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-06-29T17:43:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "af990767a1c0467f438bfb0b2a0993da33fc9cfe",
          "body": null,
          "is_bot": false,
          "headline": "chore(comfyui,novel): bump versions to 0.3.3 and 0.8.4",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-06-27T15:41:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1ac1eeb607f30cfe05adef6c43e08abc145d90c3",
          "body": "…on config\n\nBundle workflow_template, budget, language, guideline, prompt_guideline,\ncomfyui_timeout into a single dataclass. Replace positional params with\nopts: IllustrationOptions in illustrate_novel and supporting methods.\nAdd comfyui_base_url to IllustrationContext.",
          "is_bot": false,
          "headline": "refactor(novel): extract IllustrationOptions dataclass for illustrati…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-06-27T15:41:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d58716ce44b80faa5ddb89673ba0a9a8605508e",
          "body": "…mands\n\nExpose -cb / --comfyui-base-url on wi, wmi, wri, wrmi commands,\ndefaulting to NOVEL_COMFYUI_BASE_URL env var.",
          "is_bot": false,
          "headline": "feat(novel): add --comfyui-base-url option to all illustrated CLI com…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-06-27T15:39:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "da53fdfd43baa4ec2e5f0983fe800a67d5b7a6b8",
          "body": "…tions\n\nIllustrateNovel now accepts IllustrationOptions and comfyui_base_url,\npassing them to the capability layer.",
          "is_bot": false,
          "headline": "feat(novel): wire IllustrationOptions and comfyui_base_url through ac…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-06-27T15:39:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a85ce46464875998e1e9727135aafbd9513a40d",
          "body": null,
          "is_bot": false,
          "headline": "fix(comfyui): update test for download_dirs → download_dir rename",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-06-27T15:39:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c29844138ffecce47d661a891a39071e4b9df403",
          "body": "Unify single/batch generate API: GenerateKwargs.download_dir now\naccepts str | Path | list[str | Path | None]. Drop Unpack pattern\nin favor of explicit keyword-only parameters.",
          "is_bot": false,
          "headline": "refactor(comfyui): merge GenerateBatchKwargs into GenerateKwargs",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-06-27T15:39:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "277b55a07926d2f46b73414dcd1d65ba275c7768",
          "body": null,
          "is_bot": false,
          "headline": "chore(novel): bump version to 0.8.3",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-06-26T13:39:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a8e2c96addbdb0677d0cba7d4430f0b26badc12c",
          "body": null,
          "is_bot": false,
          "headline": "refactor(novel): parallelize scene-level RAG fetches with asyncio.gather",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-06-26T13:39:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d45dcbb3fc3a314e32053f3754d34b6bab347f2b",
          "body": null,
          "is_bot": false,
          "headline": "feat(novel): add Scene.bulk_append method for batch prompt injection",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-06-26T13:39:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f064ff690d9f0bef951c1e63098f4631a137f2d8",
          "body": "…tionary mapping\n\n- Changed characters_present from List[str] to Dict[str, str] for detailed acting scripts\n- Updated field documentation to reflect character name to script mapping\n- Modified handlebars template to render character-script pairs as \"name(script)\"\n- Adjusted template logic to iterate over dictionary key-value pairs instead of simple list",
          "is_bot": false,
          "headline": "refactor(scripting): update character presence model from list to dic…",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-06-26T13:17:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3bc85214367b7d90f28a78eb0907e5a6a82dbdfd",
          "body": null,
          "is_bot": false,
          "headline": "chore(novel): bump version to 0.8.2",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-06-26T13:00:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aceccbb09a6be3c655a4a1a2bf55046f187c86e3",
          "body": null,
          "is_bot": false,
          "headline": "feat(novel): add --reranker flag to RAG CLI commands",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-06-26T13:00:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "09382adcd3ab647cedf615819af00c066820b996",
          "body": null,
          "is_bot": false,
          "headline": "feat(novel): wire use_reranker through RAG and mental RAG actions",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-06-26T13:00:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0b1a7d4f974058937d3b4a4509246e5bb8fed381",
          "body": null,
          "is_bot": false,
          "headline": "refactor(novel): inherit NovelComposeRAG in mental RAG capability",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-06-26T13:00:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "95a70132b672d9db430020b4f6ab1a3bcdb53e01",
          "body": null,
          "is_bot": false,
          "headline": "feat(novel): add fetch_and_rerank method with mutation fix",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-06-26T13:00:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e38484b799acfba785165a59a623639185c278bb",
          "body": null,
          "is_bot": false,
          "headline": "feat(novel): add reranker configuration and kwargs support",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-06-26T13:00:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8309a1bfcec1ab0ccfc498f2a677d9f586e856f8",
          "body": null,
          "is_bot": false,
          "headline": "chore(novel): bump version to 0.8.1",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-06-25T17:39:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "03f8f78a004e4897bb22b0aa9dd26aacbed547a5",
          "body": "Update render_script.hbs to display location, when, purpose, mood\nas a pipe-separated header and characters_present as a cast line\nbefore each scene's narrative content.",
          "is_bot": false,
          "headline": "feat(novel): render 5W2H scene metadata in script template",
          "author_name": "Whth",
          "author_login": "Whth",
          "committed_at": "2026-06-25T17:39:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 100,
      "commits_last_year": 1265,
      "latest_release_at": "2026-07-25T22:15:33Z",
      "latest_release_tag": "v0.33.0-dev5",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 44,
      "days_since_latest_release": 0,
      "mean_days_between_releases": 4.1
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 85,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "fabricatio",
          "exists": true,
          "license": null,
          "keywords": [
            "ai",
            "agents",
            "multi-agent",
            "llm",
            "pyo3",
            "Framework :: AsyncIO",
            "Framework :: Pydantic :: 2",
            "License :: OSI Approved :: MIT License",
            "Programming Language :: Python :: 3.12",
            "Programming Language :: Python :: 3.13",
            "Programming Language :: Python :: 3.14",
            "Programming Language :: Python :: Implementation :: CPython",
            "Programming Language :: Rust",
            "Typing :: Typed"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/fabricatio/",
          "is_deprecated": false,
          "latest_version": "0.32.3",
          "repository_url": "https://github.com/Whth/fabricatio",
          "versions_count": 260,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2025-02-09T15:58:12.007807Z",
          "latest_published_at": "2026-06-24T18:00:18.618100Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 31
        }
      ]
    },
    "popularity": {
      "forks": 2,
      "stars": 8,
      "watchers": 3,
      "fork_history": {
        "days": [
          {
            "date": "2025-04-10",
            "count": 1
          },
          {
            "date": "2026-03-13",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 2,
        "total_forks": 2
      },
      "star_history": null,
      "open_issues_and_prs": 0
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "Justfile",
        "docs/Makefile"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "packages/fabricatio-actions/python/fabricatio_actions/py.typed",
        "packages/fabricatio-agent/python/fabricatio_agent/py.typed",
        "packages/fabricatio-anki/python/fabricatio_anki/py.typed",
        "packages/fabricatio-capabilities/python/fabricatio_capabilities/py.typed",
        "packages/fabricatio-capable/python/fabricatio_capable/py.typed",
        "packages/fabricatio-character/python/fabricatio_character/py.typed",
        "packages/fabricatio-checkpoint/python/fabricatio_checkpoint/py.typed",
        "packages/fabricatio-comfyui/python/fabricatio_comfyui/py.typed",
        "packages/fabricatio-core/python/fabricatio_core/py.typed",
        "packages/fabricatio-diff/python/fabricatio_diff/py.typed",
        "packages/fabricatio-digest/python/fabricatio_digest/py.typed",
        "packages/fabricatio-improve/python/fabricatio_improve/py.typed",
        "packages/fabricatio-judge/python/fabricatio_judge/py.typed",
        "packages/fabricatio-lancedb/python/fabricatio_lancedb/py.typed",
        "packages/fabricatio-locale/python/fabricatio_locale/py.typed",
        "packages/fabricatio-memory/python/fabricatio_memory/py.typed",
        "packages/fabricatio-milvus/python/fabricatio_milvus/py.typed",
        "packages/fabricatio-mock/python/fabricatio_mock/py.typed",
        "packages/fabricatio-novel/python/fabricatio_novel/py.typed",
        "packages/fabricatio-plot/python/fabricatio_plot/py.typed",
        "packages/fabricatio-question/python/fabricatio_question/py.typed",
        "packages/fabricatio-rag/python/fabricatio_rag/py.typed",
        "packages/fabricatio-rule/python/fabricatio_rule/py.typed",
        "packages/fabricatio-sandbox/python/fabricatio_sandbox/py.typed",
        "packages/fabricatio-skill/python/fabricatio_skill/py.typed",
        "packages/fabricatio-tagging/python/fabricatio_tagging/py.typed",
        "packages/fabricatio-team/python/fabricatio_team/py.typed",
        "packages/fabricatio-tei/python/fabricatio_tei/py.typed",
        "packages/fabricatio-thinking/python/fabricatio_thinking/py.typed",
        "packages/fabricatio-tool/python/fabricatio_tool/py.typed",
        "packages/fabricatio-translate/python/fabricatio_translate/py.typed",
        "packages/fabricatio-typst/python/fabricatio_typst/py.typed",
        "packages/fabricatio-webui/frontend/tsconfig.json",
        "packages/fabricatio-webui/python/fabricatio_webui/py.typed",
        "packages/fabricatio-workspace/python/fabricatio_workspace/py.typed",
        "packages/fabricatio-yue/python/fabricatio_yue/py.typed",
        "python/fabricatio/py.typed"
      ],
      "toolchain_manifests": [
        "Cargo.toml",
        "crates/deck_loader/Cargo.toml",
        "crates/error-mapping/Cargo.toml",
        "crates/fabricatio-config/Cargo.toml",
        "crates/fabricatio-constants/Cargo.toml",
        "crates/fabricatio-logger/Cargo.toml",
        "crates/fabricatio-router/Cargo.toml",
        "crates/fabricatio-stubgen/Cargo.toml",
        "crates/macro-utils/Cargo.toml",
        "crates/mcp-manager/Cargo.toml",
        "crates/scanner/Cargo.toml",
        "crates/signify/Cargo.toml",
        "crates/tex-convertor/Cargo.toml",
        "crates/thryd/Cargo.toml",
        "crates/utils/Cargo.toml",
        "packages/fabricatio-agent/Cargo.toml",
        "packages/fabricatio-anki/Cargo.toml",
        "packages/fabricatio-checkpoint/Cargo.toml",
        "packages/fabricatio-core/Cargo.toml",
        "packages/fabricatio-diff/Cargo.toml",
        "packages/fabricatio-lancedb/Cargo.toml",
        "packages/fabricatio-locale/Cargo.toml",
        "packages/fabricatio-memory/Cargo.toml",
        "packages/fabricatio-novel/Cargo.toml",
        "packages/fabricatio-sandbox/Cargo.toml",
        "packages/fabricatio-skill/Cargo.toml",
        "packages/fabricatio-tei/Cargo.toml",
        "packages/fabricatio-thinking/Cargo.toml",
        "packages/fabricatio-tool/Cargo.toml",
        "packages/fabricatio-typst/Cargo.toml",
        "packages/fabricatio-webui/Cargo.toml",
        "packages/fabricatio-workspace/Cargo.toml"
      ],
      "largest_source_bytes": 68031,
      "source_files_sampled": 645,
      "oversized_source_files": 1,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "Cargo.toml",
        "pyproject.toml"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 14,
        "malicious_count": 0,
        "assessed_package": "pypi:fabricatio@0.32.3",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "crates",
        "pypi"
      ],
      "dependencies": [
        {
          "name": "pyo3",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.29.0"
        },
        {
          "name": "reqwest",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.13.4"
        },
        {
          "name": "tar",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.4.46"
        },
        {
          "name": "flate2",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.1.9"
        },
        {
          "name": "clap",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "4.6.1"
        },
        {
          "name": "colored",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "3.1.1"
        },
        {
          "name": "chrono",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.4.45"
        },
        {
          "name": "indicatif",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.18.6"
        },
        {
          "name": "glob",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.3.3"
        },
        {
          "name": "octocrab",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.53.1"
        },
        {
          "name": "once_cell",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.21.4"
        },
        {
          "name": "thiserror",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2.0.18"
        },
        {
          "name": "tokio",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.52.3"
        },
        {
          "name": "human-units",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.5.3"
        },
        {
          "name": "walkdir",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2.5.0"
        },
        {
          "name": "fabricatio-constants",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "rustls",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.23"
        },
        {
          "name": "fabricatio-core",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "chrono",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "clap",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "colored",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "flate2",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "glob",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "human-units",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "indicatif",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "octocrab",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "once_cell",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "pyo3",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "reqwest",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "rustls",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "tar",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "thiserror",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "tokio",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "walkdir",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "arrow-array",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "arrow-schema",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "async-openai",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "async-trait",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "axum",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "base64",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "biblatex",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "blake3",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "cached",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "cfg-if",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "criterion",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "csv",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "dashmap",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "directories-next",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "dotenvy",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "epub-builder",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "eventsource-stream",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "figment",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "futures",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "futures-util",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "genanki-rs-rev",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "git2",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "handlebars",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "heck",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "heed",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "http",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "ignore",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "indoc",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "infer",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "lancedb",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "llm_json",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "mime_guess",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "moka",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "nucleo-matcher",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "pep508_rs",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "polib",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "postcard",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-async-runtimes",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-build-config",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-stub-gen",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "pythonize",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "quote",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "rayon",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "regex",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "rho-hashline",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "rmcp",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "rustpython-ast",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "rustpython-parser",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "sanitize-filename",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "secrecy",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "serde",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "serde_json",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "serde_yaml2",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "similar",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "strsim",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "strum",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "strum_macros",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "syn",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "tantivy",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "tempfile",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "tex2typst-rs",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "tiktoken-rs",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "tonic",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "tower-http",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "tracing",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "tracing-appender",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "tracing-subscriber",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "unicode-segmentation",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "url",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "uuid",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "validator",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "vfs",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "which",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "whichlang",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "@asamuzakjp/css-color",
            "direct": false,
            "version": "5.1.11",
            "ecosystem": "npm"
          },
          {
            "name": "@asamuzakjp/dom-selector",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@asamuzakjp/generational-cache",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@asamuzakjp/nwsapi",
            "direct": false,
            "version": "2.3.9",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/code-frame",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/compat-data",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/core",
            "direct": false,
            "version": "7.28.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/generator",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/generator",
            "direct": false,
            "version": "8.0.0-rc.6",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-annotate-as-pure",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-compilation-targets",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-create-class-features-plugin",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-globals",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-member-expression-to-functions",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-module-imports",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-module-transforms",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-optimise-call-expression",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-plugin-utils",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-replace-supers",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-skip-transparent-expression-wrappers",
            "direct": false,
            "version": "7.29.7",
            "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-rc.6",
            "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.0-rc.6",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-option",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helpers",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/parser",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/parser",
            "direct": false,
            "version": "8.0.0-rc.6",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-proposal-decorators",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-decorators",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-import-attributes",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-import-meta",
            "direct": false,
            "version": "7.10.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-jsx",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-typescript",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-transform-typescript",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/template",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/traverse",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/types",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/types",
            "direct": false,
            "version": "8.0.0-rc.6",
            "ecosystem": "npm"
          },
          {
            "name": "@bramus/specificity",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/color-helpers",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/css-calc",
            "direct": false,
            "version": "3.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/css-color-parser",
            "direct": false,
            "version": "4.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/css-parser-algorithms",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/css-syntax-patches-for-csstree",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@csstools/css-tokenizer",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/wasi-threads",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint-community/eslint-utils",
            "direct": false,
            "version": "4.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint-community/regexpp",
            "direct": false,
            "version": "4.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/config-array",
            "direct": false,
            "version": "0.23.5",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/config-helpers",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/core",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/object-schema",
            "direct": false,
            "version": "3.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/plugin-kit",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "@exodus/bytes",
            "direct": false,
            "version": "1.15.1",
            "ecosystem": "npm"
          },
          {
            "name": "@humanfs/core",
            "direct": false,
            "version": "0.19.2",
            "ecosystem": "npm"
          },
          {
            "name": "@humanfs/node",
            "direct": false,
            "version": "0.16.8",
            "ecosystem": "npm"
          },
          {
            "name": "@humanfs/types",
            "direct": false,
            "version": "0.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/module-importer",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/retry",
            "direct": false,
            "version": "0.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "@isaacs/cliui",
            "direct": false,
            "version": "8.0.2",
            "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": "@lucide/vue",
            "direct": false,
            "version": "1.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "@napi-rs/wasm-runtime",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.scandir",
            "direct": false,
            "version": "2.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.stat",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.walk",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "@one-ini/wasm",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-project/types",
            "direct": false,
            "version": "0.133.0",
            "ecosystem": "npm"
          },
          {
            "name": "@pkgjs/parseargs",
            "direct": false,
            "version": "0.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "@pkgr/core",
            "direct": false,
            "version": "0.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "@polka/url",
            "direct": false,
            "version": "1.0.0-next.29",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-android-arm64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-arm64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-x64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-freebsd-x64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-musl",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-ppc64-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-s390x-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-musl",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-openharmony-arm64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-wasm32-wasi",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-arm64-msvc",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-x64-msvc",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/pluginutils",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@standard-schema/spec",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tsconfig/node24",
            "direct": false,
            "version": "24.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@tybys/wasm-util",
            "direct": false,
            "version": "0.10.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/chai",
            "direct": false,
            "version": "5.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/deep-eql",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/esrecurse",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/jsdom",
            "direct": false,
            "version": "28.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/jsesc",
            "direct": false,
            "version": "2.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/json-schema",
            "direct": false,
            "version": "7.0.15",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "24.10.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "25.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/tough-cookie",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/web-bluetooth",
            "direct": false,
            "version": "0.0.18",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/eslint-plugin",
            "direct": false,
            "version": "8.61.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/parser",
            "direct": false,
            "version": "8.61.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/project-service",
            "direct": false,
            "version": "8.61.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/scope-manager",
            "direct": false,
            "version": "8.61.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/tsconfig-utils",
            "direct": false,
            "version": "8.61.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/type-utils",
            "direct": false,
            "version": "8.61.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/types",
            "direct": false,
            "version": "8.61.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/typescript-estree",
            "direct": false,
            "version": "8.61.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/utils",
            "direct": false,
            "version": "8.61.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/visitor-keys",
            "direct": false,
            "version": "8.61.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vitejs/plugin-vue",
            "direct": false,
            "version": "6.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/eslint-plugin",
            "direct": false,
            "version": "1.6.20",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/expect",
            "direct": false,
            "version": "4.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/mocker",
            "direct": false,
            "version": "4.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/pretty-format",
            "direct": false,
            "version": "4.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/runner",
            "direct": false,
            "version": "4.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/snapshot",
            "direct": false,
            "version": "4.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/spy",
            "direct": false,
            "version": "4.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/utils",
            "direct": false,
            "version": "4.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "@volar/language-core",
            "direct": false,
            "version": "2.4.28",
            "ecosystem": "npm"
          },
          {
            "name": "@volar/source-map",
            "direct": false,
            "version": "2.4.28",
            "ecosystem": "npm"
          },
          {
            "name": "@volar/typescript",
            "direct": false,
            "version": "2.4.28",
            "ecosystem": "npm"
          },
          {
            "name": "@vue-flow/background",
            "direct": false,
            "version": "1.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vue-flow/controls",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@vue-flow/core",
            "direct": false,
            "version": "1.48.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vue-flow/minimap",
            "direct": false,
            "version": "1.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "@vue-macros/common",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/babel-helper-vue-transform-on",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/babel-plugin-jsx",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/babel-plugin-resolve-type",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-core",
            "direct": false,
            "version": "3.5.26",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-core",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-dom",
            "direct": false,
            "version": "3.5.26",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-dom",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-sfc",
            "direct": false,
            "version": "3.5.26",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-sfc",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-ssr",
            "direct": false,
            "version": "3.5.26",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-ssr",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-api",
            "direct": false,
            "version": "7.7.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-api",
            "direct": false,
            "version": "8.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-core",
            "direct": false,
            "version": "8.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-kit",
            "direct": false,
            "version": "7.7.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-kit",
            "direct": false,
            "version": "8.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-shared",
            "direct": false,
            "version": "7.7.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-shared",
            "direct": false,
            "version": "8.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/eslint-config-prettier",
            "direct": false,
            "version": "10.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/eslint-config-typescript",
            "direct": false,
            "version": "14.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/language-core",
            "direct": false,
            "version": "3.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/reactivity",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/runtime-core",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/runtime-dom",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/server-renderer",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/shared",
            "direct": false,
            "version": "3.5.26",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/shared",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/test-utils",
            "direct": false,
            "version": "2.4.11",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/tsconfig",
            "direct": false,
            "version": "0.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "@vueuse/core",
            "direct": false,
            "version": "10.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vueuse/metadata",
            "direct": false,
            "version": "10.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vueuse/shared",
            "direct": false,
            "version": "10.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "abbrev",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.17.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-jsx",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "6.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "alien-signals",
            "direct": false,
            "version": "3.2.1",
            "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": "ansi-styles",
            "direct": false,
            "version": "6.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "ansis",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "assertion-error",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ast-kit",
            "direct": false,
            "version": "2.1.2",
            "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": "balanced-match",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "baseline-browser-mapping",
            "direct": false,
            "version": "2.10.36",
            "ecosystem": "npm"
          },
          {
            "name": "bidi-js",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "birpc",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "birpc",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "boolbase",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "5.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "braces",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "browserslist",
            "direct": false,
            "version": "4.28.2",
            "ecosystem": "npm"
          },
          {
            "name": "bundle-name",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "caniuse-lite",
            "direct": false,
            "version": "1.0.30001799",
            "ecosystem": "npm"
          },
          {
            "name": "chai",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "chokidar",
            "direct": false,
            "version": "5.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": "commander",
            "direct": false,
            "version": "10.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "confbox",
            "direct": false,
            "version": "0.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "confbox",
            "direct": false,
            "version": "0.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "config-chain",
            "direct": false,
            "version": "1.1.13",
            "ecosystem": "npm"
          },
          {
            "name": "convert-source-map",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "copy-anything",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "cross-spawn",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "css-tree",
            "direct": false,
            "version": "3.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "cssesc",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "csstype",
            "direct": false,
            "version": "3.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "d3-color",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-dispatch",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-drag",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-ease",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-interpolate",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-selection",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-timer",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-transition",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-zoom",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "data-urls",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "decimal.js",
            "direct": false,
            "version": "10.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "deep-is",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "default-browser",
            "direct": false,
            "version": "5.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "default-browser-id",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "define-lazy-prop",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "detect-libc",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "eastasianwidth",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "editorconfig",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "electron-to-chromium",
            "direct": false,
            "version": "1.5.372",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "9.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "error-stack-parser-es",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "es-module-lexer",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "escalade",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint",
            "direct": false,
            "version": "10.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-config-prettier",
            "direct": false,
            "version": "10.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-prettier",
            "direct": false,
            "version": "5.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-vue",
            "direct": false,
            "version": "10.9.2",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-scope",
            "direct": false,
            "version": "9.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "3.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "espree",
            "direct": false,
            "version": "11.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "esquery",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "esrecurse",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "estraverse",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "estree-walker",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "estree-walker",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "esutils",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "expect-type",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "exsolve",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "fast-deep-equal",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-diff",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-glob",
            "direct": false,
            "version": "3.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-json-stable-stringify",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-levenshtein",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "fastq",
            "direct": false,
            "version": "1.20.1",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "file-entry-cache",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fill-range",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "find-up",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "flat-cache",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "flatted",
            "direct": false,
            "version": "3.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "foreground-child",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "gensync",
            "direct": false,
            "version": "1.0.0-beta.2",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "10.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "glob-parent",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "glob-parent",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "hookable",
            "direct": false,
            "version": "5.5.3",
            "ecosystem": "npm"
          },
          {
            "name": "html-encoding-sniffer",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ignore",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "ignore",
            "direct": false,
            "version": "7.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "imurmurhash",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "ini",
            "direct": false,
            "version": "1.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "is-docker",
            "direct": false,
            "version": "3.0.0",
            "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-in-ssh",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-inside-container",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-number",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-potential-custom-element-name",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-what",
            "direct": false,
            "version": "5.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-wsl",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "isexe",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "isexe",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "jackspeak",
            "direct": false,
            "version": "3.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "jiti",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-beautify",
            "direct": false,
            "version": "1.15.4",
            "ecosystem": "npm"
          },
          {
            "name": "js-cookie",
            "direct": false,
            "version": "3.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "js-tokens",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsdom",
            "direct": false,
            "version": "29.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "jsesc",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-buffer",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-parse-even-better-errors",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-stable-stringify-without-jsonify",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json5",
            "direct": false,
            "version": "2.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "keyv",
            "direct": false,
            "version": "4.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "kolorist",
            "direct": false,
            "version": "1.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "levn",
            "direct": false,
            "version": "0.4.1",
            "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": "local-pkg",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "locate-path",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "10.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "11.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.21",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string-ast",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "mdn-data",
            "direct": false,
            "version": "2.27.1",
            "ecosystem": "npm"
          },
          {
            "name": "memorystream",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "merge2",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromatch",
            "direct": false,
            "version": "4.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "10.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "9.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "minipass",
            "direct": false,
            "version": "7.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "mitt",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "mlly",
            "direct": false,
            "version": "1.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "mrmime",
            "direct": false,
            "version": "2.0.1",
            "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.12",
            "ecosystem": "npm"
          },
          {
            "name": "natural-compare",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-releases",
            "direct": false,
            "version": "2.0.47",
            "ecosystem": "npm"
          },
          {
            "name": "nopt",
            "direct": false,
            "version": "7.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "npm-normalize-package-bin",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "npm-run-all2",
            "direct": false,
            "version": "9.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "nth-check",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "obug",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "ohash",
            "direct": false,
            "version": "2.0.11",
            "ecosystem": "npm"
          },
          {
            "name": "open",
            "direct": false,
            "version": "11.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "optionator",
            "direct": false,
            "version": "0.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "package-json-from-dist",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "parse5",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse5",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-browserify",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-exists",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-key",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-scurry",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "pathe",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "perfect-debounce",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "perfect-debounce",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "2.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "pidtree",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "pinia",
            "direct": false,
            "version": "3.0.4",
            "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": "postcss",
            "direct": false,
            "version": "8.5.13",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.15",
            "ecosystem": "npm"
          },
          {
            "name": "postcss-selector-parser",
            "direct": false,
            "version": "7.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "powershell-utils",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "prelude-ls",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "prettier",
            "direct": false,
            "version": "3.8.4",
            "ecosystem": "npm"
          },
          {
            "name": "prettier-linter-helpers",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "proto-list",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "punycode",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "quansync",
            "direct": false,
            "version": "0.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "queue-microtask",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "read-package-json-fast",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "readdirp",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "require-from-string",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "reusify",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "rfdc",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "rolldown",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "run-applescript",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "run-parallel",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "saxes",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "scule",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "6.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.8.4",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-command",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-regex",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "shell-quote",
            "direct": false,
            "version": "1.8.4",
            "ecosystem": "npm"
          },
          {
            "name": "siginfo",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "signal-exit",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "sirv",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-js",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "speakingurl",
            "direct": false,
            "version": "14.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "stackback",
            "direct": false,
            "version": "0.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "std-env",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "5.1.2",
            "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": "superjson",
            "direct": false,
            "version": "2.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "symbol-tree",
            "direct": false,
            "version": "3.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "synckit",
            "direct": false,
            "version": "0.11.13",
            "ecosystem": "npm"
          },
          {
            "name": "tinybench",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyexec",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.16",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "npm"
          },
          {
            "name": "tinyrainbow",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "tldts",
            "direct": false,
            "version": "7.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "tldts-core",
            "direct": false,
            "version": "7.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "to-regex-range",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "totalist",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "tough-cookie",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "tr46",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ts-api-utils",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "type-check",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "typescript-eslint",
            "direct": false,
            "version": "8.61.0",
            "ecosystem": "npm"
          },
          {
            "name": "ufo",
            "direct": false,
            "version": "1.6.4",
            "ecosystem": "npm"
          },
          {
            "name": "undici",
            "direct": false,
            "version": "7.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "7.16.0",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "7.24.6",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "7.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "unplugin",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unplugin-utils",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "update-browserslist-db",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "uri-js",
            "direct": false,
            "version": "4.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "util-deprecate",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "8.0.16",
            "ecosystem": "npm"
          },
          {
            "name": "vite-dev-rpc",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "vite-hot-client",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "vite-plugin-inspect",
            "direct": false,
            "version": "11.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "vite-plugin-vue-devtools",
            "direct": false,
            "version": "8.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "vite-plugin-vue-inspector",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "vitest",
            "direct": false,
            "version": "4.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "vscode-uri",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "vue",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "vue-component-type-helpers",
            "direct": false,
            "version": "3.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "vue-demi",
            "direct": false,
            "version": "0.14.10",
            "ecosystem": "npm"
          },
          {
            "name": "vue-eslint-parser",
            "direct": false,
            "version": "10.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "vue-router",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "vue-tsc",
            "direct": false,
            "version": "3.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "w3c-xmlserializer",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "webidl-conversions",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "webpack-virtual-modules",
            "direct": false,
            "version": "0.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-mimetype",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-url",
            "direct": false,
            "version": "16.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "which",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "which",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "why-is-node-running",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "word-wrap",
            "direct": false,
            "version": "1.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "8.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "wsl-utils",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "xml-name-validator",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "xml-name-validator",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "xmlchars",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "yallist",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "yaml",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "yocto-queue",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "asyncio",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "asyncstdlib",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "coveralls",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "fabricatio-capabilities",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "fabricatio-mock",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "fabricatio-tool",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "httpx",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "matplotlib",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "maturin",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "more-itertools",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "myst-parser",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "numpy",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "openpyxl",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "orjson",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pandas",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pip",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pyarrow",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pymilvus",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pyright",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytest",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-asyncio",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-cov",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-mock",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "questionary",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "rich",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "ruff",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "rust-just",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sphinx",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sphinx-autoapi",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sphinx-autodoc-typehints",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sphinx-copybutton",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sphinx-design",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sphinx-intl",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sphinx-rtd-theme",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sphinx-togglebutton",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sphinxcontrib-mermaid",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "typer",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "typst",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "uv",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "viztracer",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 594,
        "direct_count": 16,
        "indirect_count": 578
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 15,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 0
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "Whth",
          "commits": 3155,
          "avatar_url": "https://avatars.githubusercontent.com/u/88489697?v=4"
        },
        {
          "type": "User",
          "login": "nianzisi",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/46019961?v=4"
        }
      ],
      "contributors_sampled": 2,
      "top_contributor_share": 0.999
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "build-package.yaml",
        "ruff.yaml",
        "tests.yaml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": true,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "pnpm-lock.yaml"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": null,
            "reason": "no pull request found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/30 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 0,
            "reason": "project has 0 contributing companies or organizations -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 0 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": "no SAST tool detected",
            "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": 0,
            "reason": "12 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "38594a5a99a64e3ad2e1e1d98d8ee54d919f1e0f",
        "ran_at": "2026-07-25T22:39:07Z",
        "aggregate_score": 3.6,
        "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-25T22:16:04Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-05-25T17:30:47Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/Whth/fabricatio",
    "host": "github.com",
    "name": "fabricatio",
    "owner": "Whth"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 65,
      "inputs": {
        "security": 49,
        "vitality": 92,
        "community": 51,
        "governance": 53,
        "engineering": 77
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 92,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 94,
            "inputs": {
              "commits_last_year": 1265,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 44
            },
            "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": "44/52 weeks with commits",
                "points": 30.5,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 44
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "1265 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 1265
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "releases_count": 100,
              "latest_release_tag": "v0.33.0-dev5",
              "releases_from_tags": false,
              "days_since_latest_release": 0,
              "mean_days_between_releases": 4.1
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "100 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~4.1 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 4.1
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "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": 51,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 15,
            "inputs": {
              "forks": 2,
              "stars": 8,
              "watchers": 3,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "8 stars",
                "points": 13.7,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 8
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "2 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "3 watchers",
                "points": 1.7,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "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": 6.3,
                "status": "met",
                "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": 53,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 12,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 2,
              "top_contributor_share": 0.999
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 100% of commits",
                "points": 0,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "2 contributors",
                "points": 2.7,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "issue_resolution"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 72,
            "inputs": {
              "merged_prs": 15,
              "open_issues": 0,
              "closed_issues": 0,
              "issue_closed_ratio": null,
              "closed_unmerged_prs": 0
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "no issues or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_issues_or_data",
                    "params": {}
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "15/15 decided PRs merged",
                "points": 38.2,
                "status": "met",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 15,
                      "decided": 15
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "at_risk",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 44,
            "inputs": {
              "followers": 3,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "Whth",
              "public_repos": 33,
              "account_age_days": 1815
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "3 followers of Whth",
                "points": 4.3,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 3,
                      "login": "Whth"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "33 public repos, account ~4 yr old",
                "points": 21.1,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 33
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 4
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "fabricatio"
              ],
              "ecosystems": "pypi",
              "any_deprecated": false,
              "min_days_since_publish": 31
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on pypi",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "pypi"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 31 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 31
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "260 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 260
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 77,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_ci_tests"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 68,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "3 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "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": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [
                "agentic-ai",
                "llm",
                "workflow",
                "ai",
                "framework",
                "harness-framework",
                "multi-agent"
              ],
              "has_wiki": false,
              "homepage": "https://pypi.org/project/fabricatio/",
              "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://pypi.org/project/fabricatio/",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "7 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 49,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): CI-Tests, Packaging. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "ci_tests",
                    "packaging"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 36,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 3.6
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 0 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": "no SAST tool detected",
                "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": "12 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the pypi:fabricatio@0.32.3 runtime dependency closure — what installing the published package pulls in — 14 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "pypi:fabricatio@0.32.3",
                  "assessed": 14
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 14,
              "unassessed_packages": 0,
              "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": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "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": 14,
              "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
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 55,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "100 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 100,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 61,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "pnpm-lock.yaml"
              ],
              "has_dockerfile": true,
              "typed_language": false,
              "bootstrap_files": [
                "Justfile",
                "docs/Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [
                "packages/fabricatio-actions/python/fabricatio_actions/py.typed",
                "packages/fabricatio-agent/python/fabricatio_agent/py.typed",
                "packages/fabricatio-anki/python/fabricatio_anki/py.typed",
                "packages/fabricatio-capabilities/python/fabricatio_capabilities/py.typed",
                "packages/fabricatio-capable/python/fabricatio_capable/py.typed",
                "packages/fabricatio-character/python/fabricatio_character/py.typed",
                "packages/fabricatio-checkpoint/python/fabricatio_checkpoint/py.typed",
                "packages/fabricatio-comfyui/python/fabricatio_comfyui/py.typed",
                "packages/fabricatio-core/python/fabricatio_core/py.typed",
                "packages/fabricatio-diff/python/fabricatio_diff/py.typed",
                "packages/fabricatio-digest/python/fabricatio_digest/py.typed",
                "packages/fabricatio-improve/python/fabricatio_improve/py.typed",
                "packages/fabricatio-judge/python/fabricatio_judge/py.typed",
                "packages/fabricatio-lancedb/python/fabricatio_lancedb/py.typed",
                "packages/fabricatio-locale/python/fabricatio_locale/py.typed",
                "packages/fabricatio-memory/python/fabricatio_memory/py.typed",
                "packages/fabricatio-milvus/python/fabricatio_milvus/py.typed",
                "packages/fabricatio-mock/python/fabricatio_mock/py.typed",
                "packages/fabricatio-novel/python/fabricatio_novel/py.typed",
                "packages/fabricatio-plot/python/fabricatio_plot/py.typed",
                "packages/fabricatio-question/python/fabricatio_question/py.typed",
                "packages/fabricatio-rag/python/fabricatio_rag/py.typed",
                "packages/fabricatio-rule/python/fabricatio_rule/py.typed",
                "packages/fabricatio-sandbox/python/fabricatio_sandbox/py.typed",
                "packages/fabricatio-skill/python/fabricatio_skill/py.typed",
                "packages/fabricatio-tagging/python/fabricatio_tagging/py.typed",
                "packages/fabricatio-team/python/fabricatio_team/py.typed",
                "packages/fabricatio-tei/python/fabricatio_tei/py.typed",
                "packages/fabricatio-thinking/python/fabricatio_thinking/py.typed",
                "packages/fabricatio-tool/python/fabricatio_tool/py.typed",
                "packages/fabricatio-translate/python/fabricatio_translate/py.typed",
                "packages/fabricatio-typst/python/fabricatio_typst/py.typed",
                "packages/fabricatio-webui/frontend/tsconfig.json",
                "packages/fabricatio-webui/python/fabricatio_webui/py.typed",
                "packages/fabricatio-workspace/python/fabricatio_workspace/py.typed",
                "packages/fabricatio-yue/python/fabricatio_yue/py.typed",
                "python/fabricatio/py.typed"
              ],
              "agent_commit_share": 0,
              "toolchain_manifests": [
                "Cargo.toml",
                "crates/deck_loader/Cargo.toml",
                "crates/error-mapping/Cargo.toml",
                "crates/fabricatio-config/Cargo.toml",
                "crates/fabricatio-constants/Cargo.toml",
                "crates/fabricatio-logger/Cargo.toml",
                "crates/fabricatio-router/Cargo.toml",
                "crates/fabricatio-stubgen/Cargo.toml",
                "crates/macro-utils/Cargo.toml",
                "crates/mcp-manager/Cargo.toml",
                "crates/scanner/Cargo.toml",
                "crates/signify/Cargo.toml",
                "crates/tex-convertor/Cargo.toml",
                "crates/thryd/Cargo.toml",
                "crates/utils/Cargo.toml",
                "packages/fabricatio-agent/Cargo.toml",
                "packages/fabricatio-anki/Cargo.toml",
                "packages/fabricatio-checkpoint/Cargo.toml",
                "packages/fabricatio-core/Cargo.toml",
                "packages/fabricatio-diff/Cargo.toml",
                "packages/fabricatio-lancedb/Cargo.toml",
                "packages/fabricatio-locale/Cargo.toml",
                "packages/fabricatio-memory/Cargo.toml",
                "packages/fabricatio-novel/Cargo.toml",
                "packages/fabricatio-sandbox/Cargo.toml",
                "packages/fabricatio-skill/Cargo.toml",
                "packages/fabricatio-tei/Cargo.toml",
                "packages/fabricatio-thinking/Cargo.toml",
                "packages/fabricatio-tool/Cargo.toml",
                "packages/fabricatio-typst/Cargo.toml",
                "packages/fabricatio-webui/Cargo.toml",
                "packages/fabricatio-workspace/Cargo.toml"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Justfile, docs/Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Justfile, docs/Makefile"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "packages/fabricatio-actions/python/fabricatio_actions/py.typed, packages/fabricatio-agent/python/fabricatio_agent/py.typed, packages/fabricatio-anki/python/fabricatio_anki/py.typed, packages/fabricatio-capabilities/python/fabricatio_capabilities/py.typed, packages/fabricatio-capable/python/fabricatio_capable/py.typed, packages/fabricatio-character/python/fabricatio_character/py.typed, packages/fabricatio-checkpoint/python/fabricatio_checkpoint/py.typed, packages/fabricatio-comfyui/python/fabricatio_comfyui/py.typed, packages/fabricatio-core/python/fabricatio_core/py.typed, packages/fabricatio-diff/python/fabricatio_diff/py.typed, packages/fabricatio-digest/python/fabricatio_digest/py.typed, packages/fabricatio-improve/python/fabricatio_improve/py.typed, packages/fabricatio-judge/python/fabricatio_judge/py.typed, packages/fabricatio-lancedb/python/fabricatio_lancedb/py.typed, packages/fabricatio-locale/python/fabricatio_locale/py.typed, packages/fabricatio-memory/python/fabricatio_memory/py.typed, packages/fabricatio-milvus/python/fabricatio_milvus/py.typed, packages/fabricatio-mock/python/fabricatio_mock/py.typed, packages/fabricatio-novel/python/fabricatio_novel/py.typed, packages/fabricatio-plot/python/fabricatio_plot/py.typed, packages/fabricatio-question/python/fabricatio_question/py.typed, packages/fabricatio-rag/python/fabricatio_rag/py.typed, packages/fabricatio-rule/python/fabricatio_rule/py.typed, packages/fabricatio-sandbox/python/fabricatio_sandbox/py.typed, packages/fabricatio-skill/python/fabricatio_skill/py.typed, packages/fabricatio-tagging/python/fabricatio_tagging/py.typed, packages/fabricatio-team/python/fabricatio_team/py.typed, packages/fabricatio-tei/python/fabricatio_tei/py.typed, packages/fabricatio-thinking/python/fabricatio_thinking/py.typed, packages/fabricatio-tool/python/fabricatio_tool/py.typed, packages/fabricatio-translate/python/fabricatio_translate/py.typed, packages/fabricatio-typst/python/fabricatio_typst/py.typed, packages/fabricatio-webui/frontend/tsconfig.json, packages/fabricatio-webui/python/fabricatio_webui/py.typed, packages/fabricatio-workspace/python/fabricatio_workspace/py.typed, packages/fabricatio-yue/python/fabricatio_yue/py.typed, python/fabricatio/py.typed",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "packages/fabricatio-actions/python/fabricatio_actions/py.typed, packages/fabricatio-agent/python/fabricatio_agent/py.typed, packages/fabricatio-anki/python/fabricatio_anki/py.typed, packages/fabricatio-capabilities/python/fabricatio_capabilities/py.typed, packages/fabricatio-capable/python/fabricatio_capable/py.typed, packages/fabricatio-character/python/fabricatio_character/py.typed, packages/fabricatio-checkpoint/python/fabricatio_checkpoint/py.typed, packages/fabricatio-comfyui/python/fabricatio_comfyui/py.typed, packages/fabricatio-core/python/fabricatio_core/py.typed, packages/fabricatio-diff/python/fabricatio_diff/py.typed, packages/fabricatio-digest/python/fabricatio_digest/py.typed, packages/fabricatio-improve/python/fabricatio_improve/py.typed, packages/fabricatio-judge/python/fabricatio_judge/py.typed, packages/fabricatio-lancedb/python/fabricatio_lancedb/py.typed, packages/fabricatio-locale/python/fabricatio_locale/py.typed, packages/fabricatio-memory/python/fabricatio_memory/py.typed, packages/fabricatio-milvus/python/fabricatio_milvus/py.typed, packages/fabricatio-mock/python/fabricatio_mock/py.typed, packages/fabricatio-novel/python/fabricatio_novel/py.typed, packages/fabricatio-plot/python/fabricatio_plot/py.typed, packages/fabricatio-question/python/fabricatio_question/py.typed, packages/fabricatio-rag/python/fabricatio_rag/py.typed, packages/fabricatio-rule/python/fabricatio_rule/py.typed, packages/fabricatio-sandbox/python/fabricatio_sandbox/py.typed, packages/fabricatio-skill/python/fabricatio_skill/py.typed, packages/fabricatio-tagging/python/fabricatio_tagging/py.typed, packages/fabricatio-team/python/fabricatio_team/py.typed, packages/fabricatio-tei/python/fabricatio_tei/py.typed, packages/fabricatio-thinking/python/fabricatio_thinking/py.typed, packages/fabricatio-tool/python/fabricatio_tool/py.typed, packages/fabricatio-translate/python/fabricatio_translate/py.typed, packages/fabricatio-typst/python/fabricatio_typst/py.typed, packages/fabricatio-webui/frontend/tsconfig.json, packages/fabricatio-webui/python/fabricatio_webui/py.typed, packages/fabricatio-workspace/python/fabricatio_workspace/py.typed, packages/fabricatio-yue/python/fabricatio_yue/py.typed, python/fabricatio/py.typed"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "good",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 82,
            "inputs": {
              "primary_language": "Python",
              "largest_source_bytes": 68031,
              "source_files_sampled": 645,
              "oversized_source_files": 1
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Python with type-check config (packages/fabricatio-actions/python/fabricatio_actions/py.typed, packages/fabricatio-agent/python/fabricatio_agent/py.typed, packages/fabricatio-anki/python/fabricatio_anki/py.typed, packages/fabricatio-capabilities/python/fabricatio_capabilities/py.typed, packages/fabricatio-capable/python/fabricatio_capable/py.typed, packages/fabricatio-character/python/fabricatio_character/py.typed, packages/fabricatio-checkpoint/python/fabricatio_checkpoint/py.typed, packages/fabricatio-comfyui/python/fabricatio_comfyui/py.typed, packages/fabricatio-core/python/fabricatio_core/py.typed, packages/fabricatio-diff/python/fabricatio_diff/py.typed, packages/fabricatio-digest/python/fabricatio_digest/py.typed, packages/fabricatio-improve/python/fabricatio_improve/py.typed, packages/fabricatio-judge/python/fabricatio_judge/py.typed, packages/fabricatio-lancedb/python/fabricatio_lancedb/py.typed, packages/fabricatio-locale/python/fabricatio_locale/py.typed, packages/fabricatio-memory/python/fabricatio_memory/py.typed, packages/fabricatio-milvus/python/fabricatio_milvus/py.typed, packages/fabricatio-mock/python/fabricatio_mock/py.typed, packages/fabricatio-novel/python/fabricatio_novel/py.typed, packages/fabricatio-plot/python/fabricatio_plot/py.typed, packages/fabricatio-question/python/fabricatio_question/py.typed, packages/fabricatio-rag/python/fabricatio_rag/py.typed, packages/fabricatio-rule/python/fabricatio_rule/py.typed, packages/fabricatio-sandbox/python/fabricatio_sandbox/py.typed, packages/fabricatio-skill/python/fabricatio_skill/py.typed, packages/fabricatio-tagging/python/fabricatio_tagging/py.typed, packages/fabricatio-team/python/fabricatio_team/py.typed, packages/fabricatio-tei/python/fabricatio_tei/py.typed, packages/fabricatio-thinking/python/fabricatio_thinking/py.typed, packages/fabricatio-tool/python/fabricatio_tool/py.typed, packages/fabricatio-translate/python/fabricatio_translate/py.typed, packages/fabricatio-typst/python/fabricatio_typst/py.typed, packages/fabricatio-webui/frontend/tsconfig.json, packages/fabricatio-webui/python/fabricatio_webui/py.typed, packages/fabricatio-workspace/python/fabricatio_workspace/py.typed, packages/fabricatio-yue/python/fabricatio_yue/py.typed, python/fabricatio/py.typed)",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "typecheck_config_language",
                    "params": {
                      "files": "packages/fabricatio-actions/python/fabricatio_actions/py.typed, packages/fabricatio-agent/python/fabricatio_agent/py.typed, packages/fabricatio-anki/python/fabricatio_anki/py.typed, packages/fabricatio-capabilities/python/fabricatio_capabilities/py.typed, packages/fabricatio-capable/python/fabricatio_capable/py.typed, packages/fabricatio-character/python/fabricatio_character/py.typed, packages/fabricatio-checkpoint/python/fabricatio_checkpoint/py.typed, packages/fabricatio-comfyui/python/fabricatio_comfyui/py.typed, packages/fabricatio-core/python/fabricatio_core/py.typed, packages/fabricatio-diff/python/fabricatio_diff/py.typed, packages/fabricatio-digest/python/fabricatio_digest/py.typed, packages/fabricatio-improve/python/fabricatio_improve/py.typed, packages/fabricatio-judge/python/fabricatio_judge/py.typed, packages/fabricatio-lancedb/python/fabricatio_lancedb/py.typed, packages/fabricatio-locale/python/fabricatio_locale/py.typed, packages/fabricatio-memory/python/fabricatio_memory/py.typed, packages/fabricatio-milvus/python/fabricatio_milvus/py.typed, packages/fabricatio-mock/python/fabricatio_mock/py.typed, packages/fabricatio-novel/python/fabricatio_novel/py.typed, packages/fabricatio-plot/python/fabricatio_plot/py.typed, packages/fabricatio-question/python/fabricatio_question/py.typed, packages/fabricatio-rag/python/fabricatio_rag/py.typed, packages/fabricatio-rule/python/fabricatio_rule/py.typed, packages/fabricatio-sandbox/python/fabricatio_sandbox/py.typed, packages/fabricatio-skill/python/fabricatio_skill/py.typed, packages/fabricatio-tagging/python/fabricatio_tagging/py.typed, packages/fabricatio-team/python/fabricatio_team/py.typed, packages/fabricatio-tei/python/fabricatio_tei/py.typed, packages/fabricatio-thinking/python/fabricatio_thinking/py.typed, packages/fabricatio-tool/python/fabricatio_tool/py.typed, packages/fabricatio-translate/python/fabricatio_translate/py.typed, packages/fabricatio-typst/python/fabricatio_typst/py.typed, packages/fabricatio-webui/frontend/tsconfig.json, packages/fabricatio-webui/python/fabricatio_webui/py.typed, packages/fabricatio-workspace/python/fabricatio_workspace/py.typed, packages/fabricatio-yue/python/fabricatio_yue/py.typed, python/fabricatio/py.typed",
                      "language": "Python"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "1/645 source files over 60KB",
                "points": 54.9,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 645,
                      "oversized": 1
                    }
                  }
                ],
                "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 crates package 'fabricatio' from its registry"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-25T22:39:15.486317Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/w/Whth/fabricatio.svg",
  "full_name": "Whth/fabricatio",
  "license_state": "standard",
  "license_spdx": "MIT"
}

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

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

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte StatistikenPyPI.