Public record
Software health reportschema 0.27.0 · metrics 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 stars⑂ 2 forkssince Feb 2025View on GitHub ↗

Whth/fabricatio holds a health index of 65 out of 100, placing it in the Moderate band. It scores highest on Vitality (92/100) and lowest on Security (49/100). It was last updated today. A single contributor accounts for most of its recent work.

65
overall / 100
Moderate

Software health index

Metrics are grouped into weighted categories on one standardized 1–100 scale. Overall starts as their weighted mean; when public evidence triggers the High-Risk Jurisdiction Policy, the rating is adjusted and receives an At risk ceiling of 49. AI Readiness sits outside the overall score.

65
Excellent85-100Exemplary; meets essentially all checked criteria
Good70-84Healthy; minor gaps
Moderate50-69Acceptable with notable gaps; review recommended
At risk30-49Significant weaknesses; adoption warrants caution
Critical1-29Severe problems (abandoned, single-maintainer, no hygiene)
VitalityCommunity &AdoptionSustainability &GovernanceEngineeringQualitySecurityAI Readiness

Score profile

Each axis is a category. The shape matters more than the average — a healthy subject fills the whole shape, while a spike-and-crater profile means strength in one dimension is masking risk in another.

Ownership

WhthPersonal account
3 followers33 public repossince Aug 2021

This repository is owned by a personal account. A single-owner project carries more continuity risk than an organization-backed one.

Package ecosystems

RegistryPackageVersionDownloads / moVersionsLast publishTags
PyPIfabricatio0.32.3-26031 days agoaiagentsmulti-agentllmpyo3

Metrics by category

Vitality

Is the project alive — is code being written and are releases shipping?

92Excellent · 22% of overall
How it's scored
36/36Push recency — last push 0 days ago
30.5/36Commit cadence — 44/52 weeks with commits
18/18Commit volume — 1,265 commits in the last year
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Inputs used
commits_last_year1,265
human_commit_share1
days_since_last_push0
active_weeks_last_year44
How it's scored
27/27Ships releases — 100 releases published
36/36Release recency — latest release 0 days ago
27/27Release cadence — a release every ~4.1 days
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Inputs used
releases_count100
latest_release_tagv0.33.0-dev5
releases_from_tagsno
days_since_latest_release0
mean_days_between_releases4.1

Community & Adoption

Does the project have users, downloads, attention, and a welcoming setup for contributors?

51Moderate · 18% of overall
How it's scored
13.7/60Stars — 8 stars
0/25Forks — 2 forks
1.7/15Watchers — 3 watchers
Inputs used
forks2
stars8
watchers3
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

Community health

92Excellent
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (MIT)
18/18CONTRIBUTING guide
13.5/13.5Code of conduct
0/7.2Issue template
6.3/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
has_contributingyes
has_issue_templateno
has_code_of_conductyes
has_pull_request_templateyes

Sustainability & Governance

Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?

53Moderate · 24% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
0/22.5Commit distribution — top contributor authored 100% of commits
2.7/13.5Contributor breadth — 2 contributors
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
Inputs used
bus_factor1
contributors_sampled2
top_contributor_share0.999
How it's scored
0/46.8Issue resolution — no issues or no data
38.2/38.3PR acceptance — 15/15 decided PRs merged
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Inputs used
merged_prs15
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs0
Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.
How it's scored
10/30Ownership backing — personal (user) account
0/20Verified domain — not applicable to user accounts
4.3/25Owner reach — 3 followers of Whth
21.1/25Track record — 33 public repos, account ~4 yr old
Inputs used
followers3
owner_typeUser
is_verified
owner_loginWhth
public_repos33
account_age_days1,815
Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.
How it's scored
25/25Published & resolvable — 1 package(s) on pypi
35/35Publish recency — latest publish 31 days ago
20/20Version history — 260 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packagesfabricatio
ecosystemspypi
any_deprecatedno
min_days_since_publish31

Engineering Quality

Are baseline engineering and documentation practices in place?

77Good · 20% of overall
How it's scored
24/24CI workflows — 3 workflow(s)
24/24Tests present
0/16Linter config
0/9.6Pre-commit hooks
6.4/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — no data
Inputs used
has_ciyes
has_testsyes
has_editorconfigyes
has_linter_configno
has_precommit_configno
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.

Documentation

90Excellent
How it's scored
30/30README
25/25Documentation directory
15/15Documentation / homepage site — https://pypi.org/project/fabricatio/
10/10Repository description
10/10Topics — 7 topics
0/10Wiki
Inputs used
topicsagentic-ai, llm, workflow, ai, framework, harness-framework, multi-agent
has_wikino
homepagehttps://pypi.org/project/fabricatio/
has_readmeyes
has_docs_diryes
has_descriptionyes

Security

Are visible security and supply-chain practices strong, without unresolved high-risk jurisdiction exposure?

49At risk · 16% of overall
How it's scored
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 — no data
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.5License — 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 — no data
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
Inputs used
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate3.6
Excluded from scoring (no data or not applicable): ci_tests, packaging. Remaining weights renormalized.
How it's scored
35/35Direct dependencies free of known advisories — no direct dependency carries a known advisory
25/25Indirect dependencies free of known advisories — no indirect dependency carries a known advisory
0/40No advisories left outstanding — no advisory carries a publication date
Inputs used
sourceosv
advisories0
affected_packages0
assessed_packages14
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
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.

AI Readiness

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.

55Moderate · 0% of overall
How it's scored
0/45Agent instructions — no CLAUDE.md / AGENTS.md / editor rules
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 100 of 100 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share1
agent_instruction_files
agent_instruction_max_bytes
How it's scored
18/18One-command bootstrap — Justfile, docs/Makefile
22/22Automated tests
0/11Lint / format config
11/11Static type checking — 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/10Reproducible environment — Dockerfile, lockfile
0/10Demonstrated agent practice — no agent-authored commits among the last 100
0/8Automated maintenance — no automated dependency updates observed
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Inputs used
has_nixno
has_testsyes
lockfilespnpm-lock.yaml
has_dockerfileyes
typed_languageno
bootstrap_filesJustfile, docs/Makefile
has_devcontainerno
has_linter_configno
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
How it's scored
27/45Type-checkable code — 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)
54.9/55Manageable file sizes — 1/645 source files over 60KB
Inputs used
primary_languagePython
largest_source_bytes68,031
source_files_sampled645
oversized_source_files1
How it's scored
0/40API schema (OpenAPI/GraphQL/proto)
0/20MCP server
40/40Runnable examples — examples
Inputs used
example_dirsexamples
has_mcp_signalno
api_schema_files

Key facts

8GitHub stars
2contributors
1,265commits, last 12 months
0days since last push
100releases
1bus factor
0open issues
crates.io, PyPIpackage ecosystems

Data collection warnings

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

More detail

Star and fork history 0 ★ / 2 ⇿
0Stars
2Forks
45Releases

When each star and fork was added, collected from GitHub and bucketed by day. Cumulative growth sits directly above the daily additions it is made of, so the two read against each other: steady organic accretion looks nothing like an abrupt, short-lived burst. Where that difference is measurable, it is reported as growth authenticity.

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

Independent, tool-agnostic security assessment from the open-source OpenSSF Scorecard. Each check rewards a security practice, not a specific vendor's tool. Checks Scorecard could not determine are marked n/a and excluded from the security score (never counted as zero).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
n/aCI-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
n/aPackagingpackaging 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
Direct dependencies 18
RegistryPackageVersion constraintManifest
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
All dependencies 594

Full resolved dependency set from the GitHub dependency graph: 16 direct and 578 indirect (transitive) packages. The transitive closure is complete when the repository commits a lockfile.

RegistryPackageVersionRelation
crates.iochronodirect
crates.ioclapdirect
crates.iocoloreddirect
crates.ioflate2direct
crates.ioglobdirect
crates.iohuman-unitsdirect
crates.ioindicatifdirect
crates.iooctocrabdirect
crates.ioonce_celldirect
crates.iopyo3direct
crates.ioreqwestdirect
crates.iorustlsdirect
crates.iotardirect
crates.iothiserrordirect
crates.iotokiodirect
crates.iowalkdirdirect
crates.ioarrow-arrayindirect
crates.ioarrow-schemaindirect
crates.ioasync-openaiindirect
crates.ioasync-traitindirect
crates.ioaxumindirect
crates.iobase64indirect
crates.iobiblatexindirect
crates.ioblake3indirect
crates.iocachedindirect
crates.iocfg-ifindirect
crates.iocriterionindirect
crates.iocsvindirect
crates.iodashmapindirect
crates.iodirectories-nextindirect
crates.iodotenvyindirect
crates.ioepub-builderindirect
crates.ioeventsource-streamindirect
crates.iofigmentindirect
crates.iofuturesindirect
crates.iofutures-utilindirect
crates.iogenanki-rs-revindirect
crates.iogit2indirect
crates.iohandlebarsindirect
crates.ioheckindirect
crates.ioheedindirect
crates.iohttpindirect
crates.ioignoreindirect
crates.ioindocindirect
crates.ioinferindirect
crates.iolancedbindirect
crates.iollm_jsonindirect
crates.iomime_guessindirect
crates.iomokaindirect
crates.ionucleo-matcherindirect
crates.iopep508_rsindirect
crates.iopolibindirect
crates.iopostcardindirect
crates.iopyo3-async-runtimesindirect
crates.iopyo3-build-configindirect
crates.iopyo3-stub-genindirect
crates.iopythonizeindirect
crates.ioquoteindirect
crates.iorayonindirect
crates.ioregexindirect
crates.iorho-hashlineindirect
crates.iormcpindirect
crates.iorustpython-astindirect
crates.iorustpython-parserindirect
crates.iosanitize-filenameindirect
crates.iosecrecyindirect
crates.ioserdeindirect
crates.ioserde_jsonindirect
crates.ioserde_yaml2indirect
crates.iosimilarindirect
crates.iostrsimindirect
crates.iostrumindirect
crates.iostrum_macrosindirect
crates.iosynindirect
crates.iotantivyindirect
crates.iotempfileindirect
crates.iotex2typst-rsindirect
crates.iotiktoken-rsindirect
crates.iotonicindirect
crates.iotower-httpindirect
crates.iotracingindirect
crates.iotracing-appenderindirect
crates.iotracing-subscriberindirect
crates.iounicode-segmentationindirect
crates.iourlindirect
crates.iouuidindirect
crates.iovalidatorindirect
crates.iovfsindirect
crates.iowhichindirect
crates.iowhichlangindirect
npm@asamuzakjp/css-color5.1.11indirect
npm@asamuzakjp/dom-selector7.1.1indirect
npm@asamuzakjp/generational-cache1.0.1indirect
npm@asamuzakjp/nwsapi2.3.9indirect
npm@babel/code-frame7.29.7indirect
npm@babel/compat-data7.29.7indirect
npm@babel/core7.28.5indirect
npm@babel/generator7.29.7indirect
npm@babel/generator8.0.0-rc.6indirect
npm@babel/helper-annotate-as-pure7.29.7indirect
npm@babel/helper-compilation-targets7.29.7indirect
npm@babel/helper-create-class-features-plugin7.29.7indirect
npm@babel/helper-globals7.29.7indirect
npm@babel/helper-member-expression-to-functions7.29.7indirect
npm@babel/helper-module-imports7.29.7indirect
npm@babel/helper-module-transforms7.29.7indirect
npm@babel/helper-optimise-call-expression7.29.7indirect
npm@babel/helper-plugin-utils7.29.7indirect
npm@babel/helper-replace-supers7.29.7indirect
npm@babel/helper-skip-transparent-expression-wrappers7.29.7indirect
npm@babel/helper-string-parser7.29.7indirect
npm@babel/helper-string-parser8.0.0-rc.6indirect
npm@babel/helper-validator-identifier7.29.7indirect
npm@babel/helper-validator-identifier8.0.0-rc.6indirect
npm@babel/helper-validator-option7.29.7indirect
npm@babel/helpers7.29.7indirect
npm@babel/parser7.29.7indirect
npm@babel/parser8.0.0-rc.6indirect
npm@babel/plugin-proposal-decorators7.29.7indirect
npm@babel/plugin-syntax-decorators7.29.7indirect
npm@babel/plugin-syntax-import-attributes7.29.7indirect
npm@babel/plugin-syntax-import-meta7.10.4indirect
npm@babel/plugin-syntax-jsx7.29.7indirect
npm@babel/plugin-syntax-typescript7.29.7indirect
npm@babel/plugin-transform-typescript7.29.7indirect
npm@babel/template7.29.7indirect
npm@babel/traverse7.29.7indirect
npm@babel/types7.29.7indirect
npm@babel/types8.0.0-rc.6indirect
npm@bramus/specificity2.4.2indirect
npm@csstools/color-helpers6.0.2indirect
npm@csstools/css-calc3.2.1indirect
npm@csstools/css-color-parser4.1.3indirect
npm@csstools/css-parser-algorithms4.0.0indirect
npm@csstools/css-syntax-patches-for-csstree1.1.5indirect
npm@csstools/css-tokenizer4.0.0indirect
npm@emnapi/core1.10.0indirect
npm@emnapi/runtime1.10.0indirect
npm@emnapi/wasi-threads1.2.1indirect
npm@eslint-community/eslint-utils4.9.1indirect
npm@eslint-community/regexpp4.12.2indirect
npm@eslint/config-array0.23.5indirect
npm@eslint/config-helpers0.6.0indirect
npm@eslint/core1.2.1indirect
npm@eslint/object-schema3.0.5indirect
npm@eslint/plugin-kit0.7.2indirect
npm@exodus/bytes1.15.1indirect
npm@humanfs/core0.19.2indirect
npm@humanfs/node0.16.8indirect
npm@humanfs/types0.15.0indirect
npm@humanwhocodes/module-importer1.0.1indirect
npm@humanwhocodes/retry0.4.3indirect
npm@isaacs/cliui8.0.2indirect
npm@jridgewell/gen-mapping0.3.13indirect
npm@jridgewell/remapping2.3.5indirect
npm@jridgewell/resolve-uri3.1.2indirect
npm@jridgewell/sourcemap-codec1.5.5indirect
npm@jridgewell/trace-mapping0.3.31indirect
npm@lucide/vue1.21.0indirect
npm@napi-rs/wasm-runtime1.1.5indirect
npm@nodelib/fs.scandir2.1.5indirect
npm@nodelib/fs.stat2.0.5indirect
npm@nodelib/fs.walk1.2.8indirect
npm@one-ini/wasm0.1.1indirect
npm@oxc-project/types0.133.0indirect
npm@pkgjs/parseargs0.11.0indirect
npm@pkgr/core0.3.6indirect
npm@polka/url1.0.0-next.29indirect
npm@rolldown/binding-android-arm641.0.3indirect
npm@rolldown/binding-darwin-arm641.0.3indirect
npm@rolldown/binding-darwin-x641.0.3indirect
npm@rolldown/binding-freebsd-x641.0.3indirect
npm@rolldown/binding-linux-arm-gnueabihf1.0.3indirect
npm@rolldown/binding-linux-arm64-gnu1.0.3indirect
npm@rolldown/binding-linux-arm64-musl1.0.3indirect
npm@rolldown/binding-linux-ppc64-gnu1.0.3indirect
npm@rolldown/binding-linux-s390x-gnu1.0.3indirect
npm@rolldown/binding-linux-x64-gnu1.0.3indirect
npm@rolldown/binding-linux-x64-musl1.0.3indirect
npm@rolldown/binding-openharmony-arm641.0.3indirect
npm@rolldown/binding-wasm32-wasi1.0.3indirect
npm@rolldown/binding-win32-arm64-msvc1.0.3indirect
npm@rolldown/binding-win32-x64-msvc1.0.3indirect
npm@rolldown/pluginutils1.0.1indirect
npm@standard-schema/spec1.1.0indirect
npm@tsconfig/node2424.0.4indirect
npm@tybys/wasm-util0.10.2indirect
npm@types/chai5.2.3indirect
npm@types/deep-eql4.0.2indirect
npm@types/esrecurse4.3.1indirect
npm@types/estree1.0.9indirect
npm@types/jsdom28.0.3indirect
npm@types/jsesc2.5.1indirect
npm@types/json-schema7.0.15indirect
npm@types/node24.10.4indirect
npm@types/node25.9.3indirect
npm@types/tough-cookie4.0.5indirect
npm@types/web-bluetooth0.0.18indirect
npm@typescript-eslint/eslint-plugin8.61.0indirect
npm@typescript-eslint/parser8.61.0indirect
npm@typescript-eslint/project-service8.61.0indirect
npm@typescript-eslint/scope-manager8.61.0indirect
npm@typescript-eslint/tsconfig-utils8.61.0indirect
npm@typescript-eslint/type-utils8.61.0indirect
npm@typescript-eslint/types8.61.0indirect
npm@typescript-eslint/typescript-estree8.61.0indirect
npm@typescript-eslint/utils8.61.0indirect
npm@typescript-eslint/visitor-keys8.61.0indirect
npm@vitejs/plugin-vue6.0.7indirect
npm@vitest/eslint-plugin1.6.20indirect
npm@vitest/expect4.1.8indirect
npm@vitest/mocker4.1.8indirect
npm@vitest/pretty-format4.1.8indirect
npm@vitest/runner4.1.8indirect
npm@vitest/snapshot4.1.8indirect
npm@vitest/spy4.1.8indirect
npm@vitest/utils4.1.8indirect
npm@volar/language-core2.4.28indirect
npm@volar/source-map2.4.28indirect
npm@volar/typescript2.4.28indirect
npm@vue-flow/background1.3.2indirect
npm@vue-flow/controls1.1.3indirect
npm@vue-flow/core1.48.2indirect
npm@vue-flow/minimap1.5.4indirect
npm@vue-macros/common3.1.2indirect
npm@vue/babel-helper-vue-transform-on1.5.0indirect
npm@vue/babel-plugin-jsx1.5.0indirect
npm@vue/babel-plugin-resolve-type1.5.0indirect
npm@vue/compiler-core3.5.26indirect
npm@vue/compiler-core3.5.38indirect
npm@vue/compiler-dom3.5.26indirect
npm@vue/compiler-dom3.5.38indirect
npm@vue/compiler-sfc3.5.26indirect
npm@vue/compiler-sfc3.5.38indirect
npm@vue/compiler-ssr3.5.26indirect
npm@vue/compiler-ssr3.5.38indirect
npm@vue/devtools-api7.7.9indirect
npm@vue/devtools-api8.1.2indirect
npm@vue/devtools-core8.1.2indirect
npm@vue/devtools-kit7.7.9indirect
npm@vue/devtools-kit8.1.2indirect
npm@vue/devtools-shared7.7.9indirect
npm@vue/devtools-shared8.1.2indirect
npm@vue/eslint-config-prettier10.2.0indirect
npm@vue/eslint-config-typescript14.8.0indirect
npm@vue/language-core3.3.5indirect
npm@vue/reactivity3.5.38indirect
npm@vue/runtime-core3.5.38indirect
npm@vue/runtime-dom3.5.38indirect
npm@vue/server-renderer3.5.38indirect
npm@vue/shared3.5.26indirect
npm@vue/shared3.5.38indirect
npm@vue/test-utils2.4.11indirect
npm@vue/tsconfig0.9.1indirect
npm@vueuse/core10.5.0indirect
npm@vueuse/metadata10.5.0indirect
npm@vueuse/shared10.5.0indirect
npmabbrev2.0.0indirect
npmacorn8.17.0indirect
npmacorn-jsx5.3.2indirect
npmajv6.15.0indirect
npmalien-signals3.2.1indirect
npmansi-regex5.0.1indirect
npmansi-regex6.2.2indirect
npmansi-styles4.3.0indirect
npmansi-styles6.2.3indirect
npmansis4.3.1indirect
npmassertion-error2.0.1indirect
npmast-kit2.1.2indirect
npmast-kit2.2.0indirect
npmast-walker-scope0.9.0indirect
npmbalanced-match1.0.2indirect
npmbalanced-match4.0.4indirect
npmbaseline-browser-mapping2.10.36indirect
npmbidi-js1.0.3indirect
npmbirpc2.9.0indirect
npmbirpc4.0.0indirect
npmboolbase1.0.0indirect
npmbrace-expansion2.1.1indirect
npmbrace-expansion5.0.6indirect
npmbraces3.0.3indirect
npmbrowserslist4.28.2indirect
npmbundle-name4.1.0indirect
npmcaniuse-lite1.0.30001799indirect
npmchai6.2.2indirect
npmchokidar5.0.0indirect
npmcolor-convert2.0.1indirect
npmcolor-name1.1.4indirect
npmcommander10.0.1indirect
npmconfbox0.1.8indirect
npmconfbox0.2.4indirect
npmconfig-chain1.1.13indirect
npmconvert-source-map2.0.0indirect
npmcopy-anything4.0.5indirect
npmcross-spawn7.0.6indirect
npmcss-tree3.2.1indirect
npmcssesc3.0.0indirect
npmcsstype3.2.3indirect
npmd3-color3.1.0indirect
npmd3-dispatch3.0.1indirect
npmd3-drag3.0.0indirect
npmd3-ease3.0.1indirect
npmd3-interpolate3.0.1indirect
npmd3-selection3.0.0indirect
npmd3-timer3.0.1indirect
npmd3-transition3.0.1indirect
npmd3-zoom3.0.0indirect
npmdata-urls7.0.0indirect
npmdebug4.4.3indirect
npmdecimal.js10.6.0indirect
npmdeep-is0.1.4indirect
npmdefault-browser5.5.0indirect
npmdefault-browser-id5.0.1indirect
npmdefine-lazy-prop3.0.0indirect
npmdetect-libc2.1.2indirect
npmeastasianwidth0.2.0indirect
npmeditorconfig1.0.7indirect
npmelectron-to-chromium1.5.372indirect
npmemoji-regex8.0.0indirect
npmemoji-regex9.2.2indirect
npmentities6.0.1indirect
npmentities7.0.1indirect
npmentities8.0.0indirect
npmerror-stack-parser-es1.0.5indirect
npmes-module-lexer2.1.0indirect
npmescalade3.2.0indirect
npmescape-string-regexp4.0.0indirect
npmeslint10.5.0indirect
npmeslint-config-prettier10.1.8indirect
npmeslint-plugin-prettier5.5.6indirect
npmeslint-plugin-vue10.9.2indirect
npmeslint-scope9.1.2indirect
npmeslint-visitor-keys3.4.3indirect
npmeslint-visitor-keys5.0.1indirect
npmespree11.2.0indirect
npmesquery1.7.0indirect
npmesrecurse4.3.0indirect
npmestraverse5.3.0indirect
npmestree-walker2.0.2indirect
npmestree-walker3.0.3indirect
npmesutils2.0.3indirect
npmexpect-type1.3.0indirect
npmexsolve1.0.8indirect
npmfast-deep-equal3.1.3indirect
npmfast-diff1.3.0indirect
npmfast-glob3.3.3indirect
npmfast-json-stable-stringify2.1.0indirect
npmfast-levenshtein2.0.6indirect
npmfastq1.20.1indirect
npmfdir6.5.0indirect
npmfile-entry-cache8.0.0indirect
npmfill-range7.1.1indirect
npmfind-up5.0.0indirect
npmflat-cache4.0.1indirect
npmflatted3.4.2indirect
npmforeground-child3.3.1indirect
npmfsevents2.3.3indirect
npmgensync1.0.0-beta.2indirect
npmglob10.5.0indirect
npmglob-parent5.1.2indirect
npmglob-parent6.0.2indirect
npmhookable5.5.3indirect
npmhtml-encoding-sniffer6.0.0indirect
npmignore5.3.2indirect
npmignore7.0.5indirect
npmimurmurhash0.1.4indirect
npmini1.3.8indirect
npmis-docker3.0.0indirect
npmis-extglob2.1.1indirect
npmis-fullwidth-code-point3.0.0indirect
npmis-glob4.0.3indirect
npmis-in-ssh1.0.0indirect
npmis-inside-container1.0.0indirect
npmis-number7.0.0indirect
npmis-potential-custom-element-name1.0.1indirect
npmis-what5.5.0indirect
npmis-wsl3.1.1indirect
npmisexe2.0.0indirect
npmisexe4.0.0indirect
npmjackspeak3.4.3indirect
npmjiti2.7.0indirect
npmjs-beautify1.15.4indirect
npmjs-cookie3.0.8indirect
npmjs-tokens4.0.0indirect
npmjsdom29.1.1indirect
npmjsesc3.1.0indirect
npmjson-buffer3.0.1indirect
npmjson-parse-even-better-errors6.0.0indirect
npmjson-schema-traverse0.4.1indirect
npmjson-stable-stringify-without-jsonify1.0.1indirect
npmjson52.2.3indirect
npmkeyv4.5.4indirect
npmkolorist1.8.0indirect
npmlevn0.4.1indirect
npmlightningcss1.32.0indirect
npmlightningcss-android-arm641.32.0indirect
npmlightningcss-darwin-arm641.32.0indirect
npmlightningcss-darwin-x641.32.0indirect
npmlightningcss-freebsd-x641.32.0indirect
npmlightningcss-linux-arm-gnueabihf1.32.0indirect
npmlightningcss-linux-arm64-gnu1.32.0indirect
npmlightningcss-linux-arm64-musl1.32.0indirect
npmlightningcss-linux-x64-gnu1.32.0indirect
npmlightningcss-linux-x64-musl1.32.0indirect
npmlightningcss-win32-arm64-msvc1.32.0indirect
npmlightningcss-win32-x64-msvc1.32.0indirect
npmlocal-pkg1.2.1indirect
npmlocate-path6.0.0indirect
npmlru-cache10.4.3indirect
npmlru-cache11.5.1indirect
npmlru-cache5.1.1indirect
npmmagic-string0.30.21indirect
npmmagic-string-ast1.0.2indirect
npmmdn-data2.27.1indirect
npmmemorystream0.3.1indirect
npmmerge21.4.1indirect
npmmicromatch4.0.8indirect
npmminimatch10.2.5indirect
npmminimatch9.0.9indirect
npmminipass7.1.3indirect
npmmitt3.0.1indirect
npmmlly1.8.2indirect
npmmrmime2.0.1indirect
npmms2.1.3indirect
npmmuggle-string0.4.1indirect
npmnanoid3.3.12indirect
npmnatural-compare1.4.0indirect
npmnode-releases2.0.47indirect
npmnopt7.2.1indirect
npmnpm-normalize-package-bin6.0.0indirect
npmnpm-run-all29.0.2indirect
npmnth-check2.1.1indirect
npmobug2.1.1indirect
npmohash2.0.11indirect
npmopen11.0.0indirect
npmoptionator0.9.4indirect
npmp-limit3.1.0indirect
npmp-locate5.0.0indirect
npmpackage-json-from-dist1.0.1indirect
npmparse58.0.0indirect
npmparse58.0.1indirect
npmpath-browserify1.0.1indirect
npmpath-exists4.0.0indirect
npmpath-key3.1.1indirect
npmpath-scurry1.11.1indirect
npmpathe2.0.3indirect
npmperfect-debounce1.0.0indirect
npmperfect-debounce2.1.0indirect
npmpicocolors1.1.1indirect
npmpicomatch2.3.2indirect
npmpicomatch4.0.4indirect
npmpidtree1.0.0indirect
npmpinia3.0.4indirect
npmpkg-types1.3.1indirect
npmpkg-types2.3.1indirect
npmpostcss8.5.13indirect
npmpostcss8.5.15indirect
npmpostcss-selector-parser7.1.4indirect
npmpowershell-utils0.1.0indirect
npmprelude-ls1.2.1indirect
npmprettier3.8.4indirect
npmprettier-linter-helpers1.0.1indirect
npmproto-list1.2.4indirect
npmpunycode2.3.1indirect
npmquansync0.2.11indirect
npmqueue-microtask1.2.3indirect
npmread-package-json-fast6.0.0indirect
npmreaddirp5.0.0indirect
npmrequire-from-string2.0.2indirect
npmreusify1.1.0indirect
npmrfdc1.4.1indirect
npmrolldown1.0.3indirect
npmrun-applescript7.1.0indirect
npmrun-parallel1.2.0indirect
npmsaxes6.0.0indirect
npmscule1.3.0indirect
npmsemver6.3.1indirect
npmsemver7.8.4indirect
npmshebang-command2.0.0indirect
npmshebang-regex3.0.0indirect
npmshell-quote1.8.4indirect
npmsiginfo2.0.0indirect
npmsignal-exit4.1.0indirect
npmsirv3.0.2indirect
npmsource-map-js1.2.1indirect
npmspeakingurl14.0.1indirect
npmstackback0.0.2indirect
npmstd-env4.1.0indirect
npmstring-width4.2.3indirect
npmstring-width5.1.2indirect
npmstrip-ansi6.0.1indirect
npmstrip-ansi7.2.0indirect
npmsuperjson2.2.6indirect
npmsymbol-tree3.2.4indirect
npmsynckit0.11.13indirect
npmtinybench2.9.0indirect
npmtinyexec1.2.4indirect
npmtinyglobby0.2.16indirect
npmtinyglobby0.2.17indirect
npmtinyrainbow3.1.0indirect
npmtldts7.4.2indirect
npmtldts-core7.4.2indirect
npmto-regex-range5.0.1indirect
npmtotalist3.0.1indirect
npmtough-cookie6.0.1indirect
npmtr466.0.0indirect
npmts-api-utils2.5.0indirect
npmtslib2.8.1indirect
npmtype-check0.4.0indirect
npmtypescript6.0.3indirect
npmtypescript-eslint8.61.0indirect
npmufo1.6.4indirect
npmundici7.27.2indirect
npmundici-types7.16.0indirect
npmundici-types7.24.6indirect
npmundici-types7.27.2indirect
npmunplugin3.0.0indirect
npmunplugin-utils0.3.1indirect
npmupdate-browserslist-db1.2.3indirect
npmuri-js4.4.1indirect
npmutil-deprecate1.0.2indirect
npmvite8.0.16indirect
npmvite-dev-rpc2.0.0indirect
npmvite-hot-client2.2.0indirect
npmvite-plugin-inspect11.4.1indirect
npmvite-plugin-vue-devtools8.1.2indirect
npmvite-plugin-vue-inspector6.0.0indirect
npmvitest4.1.8indirect
npmvscode-uri3.1.0indirect
npmvue3.5.38indirect
npmvue-component-type-helpers3.3.4indirect
npmvue-demi0.14.10indirect
npmvue-eslint-parser10.4.1indirect
npmvue-router5.1.0indirect
npmvue-tsc3.3.5indirect
npmw3c-xmlserializer5.0.0indirect
npmwebidl-conversions8.0.1indirect
npmwebpack-virtual-modules0.6.2indirect
npmwhatwg-mimetype5.0.0indirect
npmwhatwg-url16.0.1indirect
npmwhich2.0.2indirect
npmwhich7.0.0indirect
npmwhy-is-node-running2.3.0indirect
npmword-wrap1.2.5indirect
npmwrap-ansi7.0.0indirect
npmwrap-ansi8.1.0indirect
npmwsl-utils0.3.1indirect
npmxml-name-validator4.0.0indirect
npmxml-name-validator5.0.0indirect
npmxmlchars2.2.0indirect
npmyallist3.1.1indirect
npmyaml2.9.0indirect
npmyocto-queue0.1.0indirect
PyPIasyncioindirect
PyPIasyncstdlibindirect
PyPIcoverallsindirect
PyPIfabricatio-capabilitiesindirect
PyPIfabricatio-mockindirect
PyPIfabricatio-toolindirect
PyPIhttpxindirect
PyPImatplotlibindirect
PyPImaturinindirect
PyPImore-itertoolsindirect
PyPImyst-parserindirect
PyPInumpyindirect
PyPIopenpyxlindirect
PyPIorjsonindirect
PyPIpandasindirect
PyPIpipindirect
PyPIpyarrowindirect
PyPIpydanticindirect
PyPIpymilvusindirect
PyPIpyrightindirect
PyPIpytestindirect
PyPIpytest-asyncioindirect
PyPIpytest-covindirect
PyPIpytest-mockindirect
PyPIquestionaryindirect
PyPIrichindirect
PyPIruffindirect
PyPIrust-justindirect
PyPIsphinxindirect
PyPIsphinx-autoapiindirect
PyPIsphinx-autodoc-typehintsindirect
PyPIsphinx-copybuttonindirect
PyPIsphinx-designindirect
PyPIsphinx-intlindirect
PyPIsphinx-rtd-themeindirect
PyPIsphinx-togglebuttonindirect
PyPIsphinxcontrib-mermaidindirect
PyPItyperindirect
PyPItypstindirect
PyPIuvindirect
PyPIviztracerindirect
Dependency advisories 0

Installing pypi:fabricatio@0.32.3 pulls in 14 packages, direct and transitive: 0 carry known advisories, of which 0 are direct dependencies.

No known advisories affect the assessed dependencies.

An advisory means the version recorded in the dependency graph falls inside an advisory’s affected range. Reachability is not analysed, and the graph includes development and test pins — a finding may concern tooling rather than shipped software.

Raw JSON report machine-readable
{
  "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"
}

Scores are signals, not warranties. They reflect publicly visible practices on GitHub — not a code audit, and not a security guarantee.

Missing data is excluded and weights renormalized, never scored as zero. Methodology is versioned and open: metrics v1.13.0, schema v0.27.0 — full methodology · metrics wiki.

How one result sits in the wider record: aggregate statisticsPyPI.