Public record
Software health reportschema 0.31.0 · metrics 2.5.0 · 2026-08-05 01:06 UTC

AstrBotDevs / AstrBot

AI Agent Assistant & development framework that integrates lots of IM platforms, LLMs, plugins and AI feature, and can be your openclaw alternative. ✨

Python · VueAGPL-3.0★ 38,588 stars⑂ 2,759 forkssince Dec 2022View on GitHub ↗
KindNetwork serviceCommand-line toolMCP serverChat botLibraryWeb interfacehow this is determined

AstrBotDevs/AstrBot holds a health index of 96 out of 100, placing it in the Exceptional band. It scores highest on Vitality (96/100) and lowest on Security (62/100). It was last updated today. A single contributor accounts for most of its recent work.

96
overall / 100
Exceptional

Software health index

Metrics are grouped into weighted categories on one standardized 1–100 scale. Overall starts as their weighted mean, calibrated against the distribution of the public record so bands carry percentile meaning; when public evidence triggers the High-Risk Jurisdiction Policy, the rating is adjusted and receives an At Risk ceiling of 34.

96
Exceptional93-100The record's top tier (≈ top 5%); essentially all checked criteria met
Excellent80-92Strong across the board; minor gaps
Good65-79Healthy; gaps are limited and manageable
Moderate50-64Acceptable with notable gaps; review recommended
Weak35-49Material weaknesses across several areas
At Risk20-34Significant weaknesses; adoption warrants caution
Critical1-19Severe 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.

The weighted overall 83 is calibrated to 96 on the published index scale (record calibration 2026-08-02).

Ownership

AstrBot AIOrganization
520 followers32 public repossince Feb 2025

This repository is backed by an organization — shared, accountable stewardship that can outlive any single maintainer.

Package ecosystems

RegistryPackageVersionDownloads / moVersionsLast publishTags
PyPIAstrBot4.27.1-1612 days agoagentastrbotchatbotim

Metrics by category

Vitality

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

96Exceptional · 21% of overall

Development activity

100Exceptional
How it's scored
36/36Push recency — last push 0 days ago
36/36Commit cadence — 52/52 weeks with commits
18/18Commit volume — 2,173 commits in the last year
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 16 issue activity found in the last 90 days -- score normalized to 10
Inputs used
commits_last_year2,173
human_commit_share0.97
days_since_last_push0
active_weeks_last_year52
How it's scored
27/27Ships releases — 100 releases published
36/36Release recency — latest release 2 days ago
27/27Release cadence — a release every ~4.2 days
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Inputs used
releases_count100
latest_release_tagv4.27.1
releases_from_tagsno
days_since_latest_release2
mean_days_between_releases4.2

Community & Adoption

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

94Exceptional · 17% of overall
How it's scored
60/60Stars — 38,588 stars
25/25Forks — 2,759 forks
10.6/15Watchers — 81 watchers
Inputs used
forks2,759
stars38,588
watchers81
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 (AGPL-3.0)
18/18CONTRIBUTING guide
13.5/13.5Code of conduct
0/7.2Issue template
6.3/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
readme_badges6
has_contributingyes
has_issue_templateno
has_code_of_conductyes
readme_badge_servicesshields.io
has_pull_request_templateyes

Sustainability & Governance

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

64Moderate · 23% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
6.4/22.5Commit distribution — top contributor authored 72% of commits
13.5/13.5Contributor breadth — 97 contributors
10/10OpenSSF Scorecard: Contributors — project has 21 contributing companies or organizations
Inputs used
bus_factor1
contributors_sampled97
top_contributor_share0.717
How it's scored
35.3/42Issue resolution — 84% of issues closed
21.4/30PR acceptance — 1,661/2,328 decided PRs merged
6.5/13Newcomer PR acceptance — 3/6 first-time contributors' PRs merged in 30d
3/15OpenSSF Scorecard: Code-Review — Found 8/30 approved changesets -- score normalized to 2
Inputs used
merged_prs1,661
open_issues1,009
closed_issues5,356
prs_merged_7d36
prs_decided_7d46
prs_merged_30d44
prs_decided_30d57
issue_closed_ratio0.841
closed_unmerged_prs667
first_time_authors_30d4
first_time_prs_merged_30d3
first_time_prs_decided_30d6
How it's scored
30/30Ownership backing — organization-owned
0/20Verified domain
19.5/25Owner reach — 520 followers of AstrBotDevs
14/25Track record — 32 public repos, account ~1 yr old
Inputs used
followers520
owner_typeOrganization
is_verified
owner_loginAstrBotDevs
public_repos32
account_age_days545

Package maintenance

100Exceptional
How it's scored
25/25Published & resolvable — 1 package(s) on pypi
35/35Publish recency — latest publish 2 days ago
20/20Version history — 161 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packagesAstrBot
ecosystemspypi
any_deprecatedno
min_days_since_publish2

Engineering Quality

Are baseline engineering and documentation practices in place?

96Exceptional · 19% of overall
How it's scored
24/24CI workflows — 11 workflow(s)
24/24Tests present
16/16Linter config
9.6/9.6Pre-commit hooks
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 25 out of 25 merged PRs checked by a CI test -- score normalized to 10
Inputs used
has_ciyes
has_testsyes
has_editorconfigno
has_linter_configyes
has_precommit_configyes

Documentation

100Exceptional
How it's scored
30/30README
25/25Documentation directory
15/15Documentation / homepage site — https://astrbot.app
10/10Repository description
10/10Topics — 17 topics
10/10Wiki
Inputs used
topicsai, chatbot, chatgpt, openai, qqbot, gpt, qq, agent, docker, llm, python, telegram, gemini, llama, mcp, discord, astrbot
has_wikiyes
homepagehttps://astrbot.app
has_readmeyes
has_docs_diryes
has_descriptionyes

Security

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

62Moderate · 16% of overall
How it's scored
7.5/7.5Binary-Artifacts — no binaries found in the repo
4.5/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 25 out of 25 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
1.5/7.5Code-Review — Found 8/30 approved changesets -- score normalized to 2
2.5/2.5Contributors — project has 21 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5License — license file detected
7.5/7.5Maintained — 30 commit(s) and 16 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
5/5SAST — SAST tool is run on all commits
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 — 218 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated18
scorecard_versionv5.5.0
checks_inconclusive0
scorecard_aggregate5.3

Dependency advisories

100Exceptional
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_packages142
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:AstrBot@4.27.1 runtime dependency closure — what installing the published package pulls in — 142 packages. Reachability is not analyzed.

AI Readiness

How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight (4%): agent tooling is a real maintenance signal, but a repository with none can still reach 100/100.

88Excellent · 4% of overall
How it's scored
45/45Agent instructions — .github/copilot-instructions.md, AGENTS.md
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 97 of 97 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share1
agent_instruction_files.github/copilot-instructions.md, AGENTS.md
agent_instruction_max_bytes6,502
How it's scored
18/18One-command bootstrap — Makefile
22/22Automated tests
11/11Lint / format config
11/11Static type checking — dashboard/tsconfig.json, pyrightconfig.json
10/10Reproducible environment — Dockerfile, lockfile
8/10Demonstrated agent practice — 4 of the last 100 commits agent-authored or agent-credited
8/8Automated maintenance — 3 of the last 100 commits are automated dependency updates
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_filesMakefile
has_devcontainerno
has_linter_configyes
typecheck_configsdashboard/tsconfig.json, pyrightconfig.json
agent_commit_share0.04
toolchain_manifests
dependency_bot_commit_share0.03
How it's scored
27/45Type-checkable code — Python with type-check config (dashboard/tsconfig.json, pyrightconfig.json)
53.6/55Manageable file sizes — 19/744 source files over 60KB
Inputs used
primary_languagePython
largest_source_bytes1,267,458
source_files_sampled744
oversized_source_files19
How it's scored
40/40API schema (OpenAPI/GraphQL/proto) — docs/public/openapi.json
20/20MCP server
40/40Runnable examples — samples
Inputs used
example_dirssamples
has_mcp_signalyes
api_schema_filesdocs/public/openapi.json

Key facts

38,588GitHub stars
97contributors
2,173commits, last 12 months
0days since last push
100releases
1bus factor
1,009open issues
npm, PyPIpackage ecosystems

Data collection warnings

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • First-time contributor figures cover 12 of 25 authors (cap 12)

More detail

Star and fork history 0 ★ / 2,759 ⇿
0Stars
2,759Forks
42Releases

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.

Only the most recent history is shown — this repository exceeds the collection window, so the earliest history is not captured.

1,6001,8002,0002,2002,4002,6002,8002,759372026-032026-052026-08
Major 0Minor 4Patch 25
OpenSSF Scorecard 5.3 / 10
5.3aggregate

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-08-05 01:05 UTC

10Binary-Artifactsno binaries found in the repo
6Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests25 out of 25 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
2Code-ReviewFound 8/30 approved changesets -- score normalized to 2
10Contributorsproject has 21 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 16 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
10SASTSAST tool is run on all commits
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
0Vulnerabilities218 existing vulnerabilities detected
Direct dependencies 96
RegistryPackageVersion constraintManifest
npm@guolao/vue-monaco-editor^1.5.4dashboard/package.json
npm@hey-api/client-axios0.2.12dashboard/package.json
npm@lucide/vue^1.23.0dashboard/package.json
npm@tiptap/starter-kit2.1.7dashboard/package.json
npm@tiptap/vue-32.1.7dashboard/package.json
npmapexcharts3.42.0dashboard/package.json
npmaxios1.13.5dashboard/package.json
npmaxios-mock-adapter^1.22.0dashboard/package.json
npmchance1.1.11dashboard/package.json
npmdate-fns2.30.0dashboard/package.json
npmdompurify^3.3.2dashboard/package.json
npmevent-source-polyfill^1.0.31dashboard/package.json
npmhighlight.js11.11.1dashboard/package.json
npmkatex^0.16.27dashboard/package.json
npmlodash4.17.23dashboard/package.json
npmmarkdown-it^14.1.1dashboard/package.json
npmmarkstream-vue1.0.5-beta.0dashboard/package.json
npmmermaid^11.12.2dashboard/package.json
npmmonaco-editor^0.52.2dashboard/package.json
npmpinia2.1.6dashboard/package.json
npmpinyin-pro^3.26.0dashboard/package.json
npmqrcode^1.5.4dashboard/package.json
npmshiki^3.23.0dashboard/package.json
npmstream-markdown^0.0.16dashboard/package.json
npmvee-validate4.11.3dashboard/package.json
npmvite-plugin-vuetify2.1.3dashboard/package.json
npmvue3.3.4dashboard/package.json
npmvue-i18n^11.1.5dashboard/package.json
npmvue-router4.2.4dashboard/package.json
npmvue3-apexcharts1.4.4dashboard/package.json
npmvue3-print-nb0.1.4dashboard/package.json
npmvuetify3.7.11dashboard/package.json
npmyup1.2.0dashboard/package.json
PyPIaiocqhttp>=1.4.4pyproject.toml
PyPIaiodocker>=0.24.0pyproject.toml
PyPIaiohttp>=3.11.18pyproject.toml
PyPIaiosqlite>=0.21.0pyproject.toml
PyPIanthropic>=0.51.0pyproject.toml
PyPIapscheduler>=3.11.0pyproject.toml
PyPIcertifi>=2025.4.26pyproject.toml
PyPIchardet~=5.1.0pyproject.toml
PyPIloguru>=0.7.2pyproject.toml
PyPIcryptography>=44.0.3pyproject.toml
PyPIdashscope>=1.23.2pyproject.toml
PyPIdeprecated>=1.2.18pyproject.toml
PyPIdingtalk-stream>=0.22.1pyproject.toml
PyPIdocstring-parser>=0.16pyproject.toml
PyPIfaiss-cpu>=1.14.3pyproject.toml
PyPIfastapi>=0.124.0pyproject.toml
PyPIfilelock>=3.18.0pyproject.toml
PyPIgoogle-genai>=1.56.0pyproject.toml
PyPIhttpx>=0.28.1pyproject.toml
PyPIlark-oapi>=1.4.15pyproject.toml
PyPImcp>=1.8.0,<2pyproject.toml
PyPIopenai>=1.78.0pyproject.toml
PyPIormsgpack>=1.9.1pyproject.toml
PyPIopenpyxl>=3.1.5pyproject.toml
PyPIpandas>=2.2.0pyproject.toml
PyPIpillow>=11.2.1pyproject.toml
PyPIpip>=25.1.1pyproject.toml
PyPIpsutil>=5.8.0,<7.2.0pyproject.toml
PyPIpy-cord>=2.6.1pyproject.toml
PyPIpydantic>=2.12.5pyproject.toml
PyPIpydub>=0.25.1pyproject.toml
PyPIpyjwt>=2.10.1pyproject.toml
PyPIqrcode>=8.2pyproject.toml
PyPIquart>=0.20.0pyproject.toml
PyPIpython-telegram-bot>=22.6pyproject.toml
PyPIqq-botpy==1.2.1pyproject.toml
PyPIsilk-python>=0.2.6pyproject.toml
PyPIslack-sdk>=3.35.0pyproject.toml
PyPIsqlalchemy>=2.0.41pyproject.toml
PyPIsqlmodel>=0.0.24pyproject.toml
PyPItelegramify-markdown>=1.0.0pyproject.toml
PyPIwatchfiles>=1.0.5pyproject.toml
PyPIwebsockets>=15.0.1pyproject.toml
PyPIwechatpy>=1.8.18pyproject.toml
PyPIaudioop-ltspyproject.toml
PyPIclick>=8.2.1pyproject.toml
PyPIpypdf>=6.1.1pyproject.toml
PyPIaiofiles>=25.1.0pyproject.toml
PyPIrank-bm25>=0.2.2pyproject.toml
PyPIjieba>=0.42.1pyproject.toml
PyPImarkitdown-no-magika>=0.1.2pyproject.toml
PyPIxinference-clientpyproject.toml
PyPItenacity>=9.1.2pyproject.toml
PyPIshipyard-python-sdk>=0.2.4pyproject.toml
PyPIshipyard-neo-sdk>=0.2.0pyproject.toml
PyPIpython-socks>=2.8.0pyproject.toml
PyPIpysocks>=1.7.1pyproject.toml
PyPIpackaging>=24.2pyproject.toml
PyPIpython-ripgrep==0.0.8pyproject.toml
PyPIpython-docx>=1.2.0pyproject.toml
PyPIpyotp>=2.9.0pyproject.toml
PyPIreportlab>=5.0.0pyproject.toml
PyPIxlrd>=2.0.2pyproject.toml
All dependencies 933

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

RegistryPackageVersionRelation
npm@guolao/vue-monaco-editor1.6.0direct
npm@hey-api/client-axios0.2.12direct
npm@lucide/vue1.23.0direct
npm@tiptap/starter-kit2.1.7direct
npm@tiptap/vue-32.1.7direct
npmapexcharts3.42.0direct
npmaxios1.13.5direct
npmaxios-mock-adapter1.22.0direct
npmchance1.1.11direct
npmdate-fns2.30.0direct
npmdompurify3.3.2direct
npmevent-source-polyfill1.0.31direct
npmhighlight.js11.11.1direct
npmkatex0.16.28direct
npmlodash4.17.23direct
npmmarkdown-it14.1.1direct
npmmarkstream-vue1.0.5-beta.0direct
npmmermaid11.12.2direct
npmmonaco-editor0.52.2direct
npmpinia2.1.6direct
npmpinyin-pro3.28.0direct
npmqrcode1.5.4direct
npmshiki2.5.0direct
npmshiki3.23.0direct
npmstream-markdown0.0.16direct
npmvee-validate4.11.3direct
npmvite-plugin-vuetify2.1.3direct
npmvue3.3.4direct
npmvue3.5.17direct
npmvue-i18n11.2.8direct
npmvue-router4.2.4direct
npmvue3-apexcharts1.4.4direct
npmvue3-print-nb0.1.4direct
npmvuetify3.7.11direct
npmyup1.2.0direct
PyPIaiocqhttpdirect
PyPIaiodockerdirect
PyPIaiofilesdirect
PyPIaiohttpdirect
PyPIaiosqlitedirect
PyPIanthropicdirect
PyPIapschedulerdirect
PyPIaudioop-ltsdirect
PyPIcertifidirect
PyPIchardetdirect
PyPIclickdirect
PyPIcryptographydirect
PyPIdashscopedirect
PyPIdeprecateddirect
PyPIdingtalk-streamdirect
PyPIdocstring-parserdirect
PyPIfaiss-cpudirect
PyPIfastapidirect
PyPIfilelockdirect
PyPIgoogle-genaidirect
PyPIhttpxdirect
PyPIjiebadirect
PyPIlark-oapidirect
PyPIlogurudirect
PyPImarkitdown-no-magikadirect
PyPImcpdirect
PyPIopenaidirect
PyPIopenpyxldirect
PyPIormsgpackdirect
PyPIpackagingdirect
PyPIpandasdirect
PyPIpillowdirect
PyPIpipdirect
PyPIpsutildirect
PyPIpy-corddirect
PyPIpydanticdirect
PyPIpydubdirect
PyPIpyjwtdirect
PyPIpyotpdirect
PyPIpypdfdirect
PyPIpysocksdirect
PyPIpython-docxdirect
PyPIpython-ripgrep0.0.8direct
PyPIpython-socksdirect
PyPIpython-telegram-botdirect
PyPIqq-botpy1.2.1direct
PyPIqrcodedirect
PyPIquartdirect
PyPIrank-bm25direct
PyPIreportlabdirect
PyPIshipyard-neo-sdkdirect
PyPIshipyard-python-sdkdirect
PyPIsilk-pythondirect
PyPIslack-sdkdirect
PyPIsqlalchemydirect
PyPIsqlmodeldirect
PyPItelegramify-markdowndirect
PyPItenacitydirect
PyPIwatchfilesdirect
PyPIwebsocketsdirect
PyPIwechatpydirect
PyPIxinference-clientdirect
PyPIxlrddirect
npm@algolia/autocomplete-core1.17.7indirect
npm@algolia/autocomplete-plugin-algolia-insights1.17.7indirect
npm@algolia/autocomplete-preset-algolia1.17.7indirect
npm@algolia/autocomplete-shared1.17.7indirect
npm@algolia/client-abtesting5.31.0indirect
npm@algolia/client-analytics5.31.0indirect
npm@algolia/client-common5.31.0indirect
npm@algolia/client-insights5.31.0indirect
npm@algolia/client-personalization5.31.0indirect
npm@algolia/client-query-suggestions5.31.0indirect
npm@algolia/client-search5.31.0indirect
npm@algolia/ingestion1.31.0indirect
npm@algolia/monitoring1.31.0indirect
npm@algolia/recommend5.31.0indirect
npm@algolia/requester-browser-xhr5.31.0indirect
npm@algolia/requester-fetch5.31.0indirect
npm@algolia/requester-node-http5.31.0indirect
npm@antfu/install-pkg1.1.0indirect
npm@apidevtools/json-schema-ref-parser11.7.3indirect
npm@babel/helper-string-parser7.27.1indirect
npm@babel/helper-validator-identifier7.27.1indirect
npm@babel/helper-validator-identifier7.28.5indirect
npm@babel/parser7.28.0indirect
npm@babel/parser7.29.0indirect
npm@babel/runtime7.28.6indirect
npm@babel/types7.28.0indirect
npm@babel/types7.29.0indirect
npm@braintree/sanitize-url7.1.2indirect
npm@cacheable/memory2.0.8indirect
npm@cacheable/utils2.4.0indirect
npm@chenglou/pretext0.0.5indirect
npm@chevrotain/cst-dts-gen11.0.3indirect
npm@chevrotain/gast11.0.3indirect
npm@chevrotain/regexp-to-ast11.0.3indirect
npm@chevrotain/types11.0.3indirect
npm@chevrotain/utils11.0.3indirect
npm@docsearch/css3.8.2indirect
npm@docsearch/js3.8.2indirect
npm@docsearch/react3.8.2indirect
npm@esbuild/aix-ppc640.21.5indirect
npm@esbuild/aix-ppc640.25.12indirect
npm@esbuild/android-arm0.21.5indirect
npm@esbuild/android-arm0.25.12indirect
npm@esbuild/android-arm640.21.5indirect
npm@esbuild/android-arm640.25.12indirect
npm@esbuild/android-x640.21.5indirect
npm@esbuild/android-x640.25.12indirect
npm@esbuild/darwin-arm640.21.5indirect
npm@esbuild/darwin-arm640.25.12indirect
npm@esbuild/darwin-x640.21.5indirect
npm@esbuild/darwin-x640.25.12indirect
npm@esbuild/freebsd-arm640.21.5indirect
npm@esbuild/freebsd-arm640.25.12indirect
npm@esbuild/freebsd-x640.21.5indirect
npm@esbuild/freebsd-x640.25.12indirect
npm@esbuild/linux-arm0.21.5indirect
npm@esbuild/linux-arm0.25.12indirect
npm@esbuild/linux-arm640.21.5indirect
npm@esbuild/linux-arm640.25.12indirect
npm@esbuild/linux-ia320.21.5indirect
npm@esbuild/linux-ia320.25.12indirect
npm@esbuild/linux-loong640.21.5indirect
npm@esbuild/linux-loong640.25.12indirect
npm@esbuild/linux-mips64el0.21.5indirect
npm@esbuild/linux-mips64el0.25.12indirect
npm@esbuild/linux-ppc640.21.5indirect
npm@esbuild/linux-ppc640.25.12indirect
npm@esbuild/linux-riscv640.21.5indirect
npm@esbuild/linux-riscv640.25.12indirect
npm@esbuild/linux-s390x0.21.5indirect
npm@esbuild/linux-s390x0.25.12indirect
npm@esbuild/linux-x640.21.5indirect
npm@esbuild/linux-x640.25.12indirect
npm@esbuild/netbsd-arm640.25.12indirect
npm@esbuild/netbsd-x640.21.5indirect
npm@esbuild/netbsd-x640.25.12indirect
npm@esbuild/openbsd-arm640.25.12indirect
npm@esbuild/openbsd-x640.21.5indirect
npm@esbuild/openbsd-x640.25.12indirect
npm@esbuild/openharmony-arm640.25.12indirect
npm@esbuild/sunos-x640.21.5indirect
npm@esbuild/sunos-x640.25.12indirect
npm@esbuild/win32-arm640.21.5indirect
npm@esbuild/win32-arm640.25.12indirect
npm@esbuild/win32-ia320.21.5indirect
npm@esbuild/win32-ia320.25.12indirect
npm@esbuild/win32-x640.21.5indirect
npm@esbuild/win32-x640.25.12indirect
npm@eslint-community/eslint-utils4.9.1indirect
npm@eslint-community/regexpp4.12.2indirect
npm@eslint/eslintrc2.1.4indirect
npm@eslint/js8.48.0indirect
npm@floating-ui/core1.7.5indirect
npm@floating-ui/dom1.7.6indirect
npm@floating-ui/utils0.2.11indirect
npm@hey-api/openapi-ts0.60.0indirect
npm@humanwhocodes/config-array0.11.14indirect
npm@humanwhocodes/module-importer1.0.1indirect
npm@humanwhocodes/object-schema2.0.3indirect
npm@iconify-json/simple-icons1.2.42indirect
npm@iconify/types2.0.0indirect
npm@iconify/utils3.1.0indirect
npm@intlify/core-base11.2.8indirect
npm@intlify/message-compiler11.2.8indirect
npm@intlify/shared11.2.8indirect
npm@jridgewell/gen-mapping0.3.13indirect
npm@jridgewell/resolve-uri3.1.2indirect
npm@jridgewell/source-map0.3.11indirect
npm@jridgewell/sourcemap-codec1.5.4indirect
npm@jridgewell/sourcemap-codec1.5.5indirect
npm@jridgewell/trace-mapping0.3.31indirect
npm@jsdevtools/ono7.1.3indirect
npm@keyv/bigmap1.3.1indirect
npm@keyv/serialize1.1.1indirect
npm@mdi/font7.2.96indirect
npm@mermaid-js/parser0.6.3indirect
npm@monaco-editor/loader1.7.0indirect
npm@nodelib/fs.scandir2.1.5indirect
npm@nodelib/fs.stat2.0.5indirect
npm@nodelib/fs.walk1.2.8indirect
npm@pkgr/core0.2.9indirect
npm@popperjs/core2.11.8indirect
npm@remirror/core-constants3.0.0indirect
npm@rollup/rollup-android-arm-eabi4.44.2indirect
npm@rollup/rollup-android-arm-eabi4.59.0indirect
npm@rollup/rollup-android-arm644.44.2indirect
npm@rollup/rollup-android-arm644.59.0indirect
npm@rollup/rollup-darwin-arm644.44.2indirect
npm@rollup/rollup-darwin-arm644.59.0indirect
npm@rollup/rollup-darwin-x644.44.2indirect
npm@rollup/rollup-darwin-x644.59.0indirect
npm@rollup/rollup-freebsd-arm644.44.2indirect
npm@rollup/rollup-freebsd-arm644.59.0indirect
npm@rollup/rollup-freebsd-x644.44.2indirect
npm@rollup/rollup-freebsd-x644.59.0indirect
npm@rollup/rollup-linux-arm-gnueabihf4.44.2indirect
npm@rollup/rollup-linux-arm-gnueabihf4.59.0indirect
npm@rollup/rollup-linux-arm-musleabihf4.44.2indirect
npm@rollup/rollup-linux-arm-musleabihf4.59.0indirect
npm@rollup/rollup-linux-arm64-gnu4.44.2indirect
npm@rollup/rollup-linux-arm64-gnu4.59.0indirect
npm@rollup/rollup-linux-arm64-musl4.44.2indirect
npm@rollup/rollup-linux-arm64-musl4.59.0indirect
npm@rollup/rollup-linux-loong64-gnu4.59.0indirect
npm@rollup/rollup-linux-loong64-musl4.59.0indirect
npm@rollup/rollup-linux-loongarch64-gnu4.44.2indirect
npm@rollup/rollup-linux-powerpc64le-gnu4.44.2indirect
npm@rollup/rollup-linux-ppc64-gnu4.59.0indirect
npm@rollup/rollup-linux-ppc64-musl4.59.0indirect
npm@rollup/rollup-linux-riscv64-gnu4.44.2indirect
npm@rollup/rollup-linux-riscv64-gnu4.59.0indirect
npm@rollup/rollup-linux-riscv64-musl4.44.2indirect
npm@rollup/rollup-linux-riscv64-musl4.59.0indirect
npm@rollup/rollup-linux-s390x-gnu4.44.2indirect
npm@rollup/rollup-linux-s390x-gnu4.59.0indirect
npm@rollup/rollup-linux-x64-gnu4.44.2indirect
npm@rollup/rollup-linux-x64-gnu4.59.0indirect
npm@rollup/rollup-linux-x64-musl4.44.2indirect
npm@rollup/rollup-linux-x64-musl4.59.0indirect
npm@rollup/rollup-openbsd-x644.59.0indirect
npm@rollup/rollup-openharmony-arm644.59.0indirect
npm@rollup/rollup-win32-arm64-msvc4.44.2indirect
npm@rollup/rollup-win32-arm64-msvc4.59.0indirect
npm@rollup/rollup-win32-ia32-msvc4.44.2indirect
npm@rollup/rollup-win32-ia32-msvc4.59.0indirect
npm@rollup/rollup-win32-x64-gnu4.59.0indirect
npm@rollup/rollup-win32-x64-msvc4.44.2indirect
npm@rollup/rollup-win32-x64-msvc4.59.0indirect
npm@rushstack/eslint-patch1.3.3indirect
npm@shikijs/core2.5.0indirect
npm@shikijs/core3.22.0indirect
npm@shikijs/core3.23.0indirect
npm@shikijs/engine-javascript2.5.0indirect
npm@shikijs/engine-javascript3.23.0indirect
npm@shikijs/engine-oniguruma2.5.0indirect
npm@shikijs/engine-oniguruma3.23.0indirect
npm@shikijs/langs2.5.0indirect
npm@shikijs/langs3.23.0indirect
npm@shikijs/themes2.5.0indirect
npm@shikijs/themes3.23.0indirect
npm@shikijs/transformers2.5.0indirect
npm@shikijs/types2.5.0indirect
npm@shikijs/types3.22.0indirect
npm@shikijs/types3.23.0indirect
npm@shikijs/vscode-textmate10.0.2indirect
npm@tiptap/core2.27.2indirect
npm@tiptap/extension-blockquote2.27.2indirect
npm@tiptap/extension-bold2.27.2indirect
npm@tiptap/extension-bubble-menu2.27.2indirect
npm@tiptap/extension-bullet-list2.27.2indirect
npm@tiptap/extension-code2.27.2indirect
npm@tiptap/extension-code-block2.27.2indirect
npm@tiptap/extension-document2.27.2indirect
npm@tiptap/extension-dropcursor2.27.2indirect
npm@tiptap/extension-floating-menu2.27.2indirect
npm@tiptap/extension-gapcursor2.27.2indirect
npm@tiptap/extension-hard-break2.27.2indirect
npm@tiptap/extension-heading2.27.2indirect
npm@tiptap/extension-history2.27.2indirect
npm@tiptap/extension-horizontal-rule2.27.2indirect
npm@tiptap/extension-italic2.27.2indirect
npm@tiptap/extension-list-item2.27.2indirect
npm@tiptap/extension-ordered-list2.27.2indirect
npm@tiptap/extension-paragraph2.27.2indirect
npm@tiptap/extension-strike2.27.2indirect
npm@tiptap/extension-text2.27.2indirect
npm@tiptap/pm2.27.2indirect
npm@types/chance1.1.3indirect
npm@types/d37.4.3indirect
npm@types/d3-array3.2.2indirect
npm@types/d3-axis3.0.6indirect
npm@types/d3-brush3.0.6indirect
npm@types/d3-chord3.0.6indirect
npm@types/d3-color3.1.3indirect
npm@types/d3-contour3.0.6indirect
npm@types/d3-delaunay6.0.4indirect
npm@types/d3-dispatch3.0.7indirect
npm@types/d3-drag3.0.7indirect
npm@types/d3-dsv3.0.7indirect
npm@types/d3-ease3.0.2indirect
npm@types/d3-fetch3.0.7indirect
npm@types/d3-force3.0.10indirect
npm@types/d3-format3.0.4indirect
npm@types/d3-geo3.1.0indirect
npm@types/d3-hierarchy3.1.7indirect
npm@types/d3-interpolate3.0.4indirect
npm@types/d3-path3.1.1indirect
npm@types/d3-polygon3.0.2indirect
npm@types/d3-quadtree3.0.6indirect
npm@types/d3-random3.0.3indirect
npm@types/d3-scale4.0.9indirect
npm@types/d3-scale-chromatic3.1.0indirect
npm@types/d3-selection3.0.11indirect
npm@types/d3-shape3.1.8indirect
npm@types/d3-time3.0.4indirect
npm@types/d3-time-format4.0.3indirect
npm@types/d3-timer3.0.2indirect
npm@types/d3-transition3.0.9indirect
npm@types/d3-zoom3.0.8indirect
npm@types/dompurify3.2.0indirect
npm@types/eslint9.6.1indirect
npm@types/eslint-scope3.7.7indirect
npm@types/estree1.0.8indirect
npm@types/geojson7946.0.16indirect
npm@types/hast3.0.4indirect
npm@types/json-schema7.0.15indirect
npm@types/linkify-it5.0.0indirect
npm@types/markdown-it14.1.2indirect
npm@types/mdast4.0.4indirect
npm@types/mdurl2.0.0indirect
npm@types/node20.19.32indirect
npm@types/node20.19.37indirect
npm@types/semver7.7.1indirect
npm@types/trusted-types2.0.7indirect
npm@types/unist3.0.3indirect
npm@types/web-bluetooth0.0.21indirect
npm@typescript-eslint/eslint-plugin5.62.0indirect
npm@typescript-eslint/parser5.62.0indirect
npm@typescript-eslint/scope-manager5.62.0indirect
npm@typescript-eslint/type-utils5.62.0indirect
npm@typescript-eslint/types5.62.0indirect
npm@typescript-eslint/typescript-estree5.62.0indirect
npm@typescript-eslint/utils5.62.0indirect
npm@typescript-eslint/visitor-keys5.62.0indirect
npm@ungap/structured-clone1.3.0indirect
npm@vitejs/plugin-vue5.2.4indirect
npm@volar/language-core1.10.10indirect
npm@volar/source-map1.10.10indirect
npm@volar/typescript1.10.10indirect
npm@vue/compiler-core3.3.4indirect
npm@vue/compiler-core3.5.17indirect
npm@vue/compiler-core3.5.27indirect
npm@vue/compiler-dom3.3.4indirect
npm@vue/compiler-dom3.5.17indirect
npm@vue/compiler-dom3.5.27indirect
npm@vue/compiler-sfc3.3.4indirect
npm@vue/compiler-sfc3.5.17indirect
npm@vue/compiler-ssr3.3.4indirect
npm@vue/compiler-ssr3.5.17indirect
npm@vue/devtools-api6.6.4indirect
npm@vue/devtools-api7.7.7indirect
npm@vue/devtools-kit7.7.7indirect
npm@vue/devtools-shared7.7.7indirect
npm@vue/eslint-config-prettier8.0.0indirect
npm@vue/eslint-config-typescript11.0.3indirect
npm@vue/language-core1.8.8indirect
npm@vue/reactivity3.3.4indirect
npm@vue/reactivity3.5.17indirect
npm@vue/reactivity3.5.27indirect
npm@vue/reactivity-transform3.3.4indirect
npm@vue/runtime-core3.3.4indirect
npm@vue/runtime-core3.5.17indirect
npm@vue/runtime-dom3.3.4indirect
npm@vue/runtime-dom3.5.17indirect
npm@vue/server-renderer3.3.4indirect
npm@vue/server-renderer3.5.17indirect
npm@vue/shared3.3.4indirect
npm@vue/shared3.5.17indirect
npm@vue/shared3.5.27indirect
npm@vue/tsconfig0.4.0indirect
npm@vue/typescript1.8.8indirect
npm@vuetify/loader-shared1.7.1indirect
npm@vuetify/loader-shared2.1.2indirect
npm@vueuse/core12.8.2indirect
npm@vueuse/integrations12.8.2indirect
npm@vueuse/metadata12.8.2indirect
npm@vueuse/shared12.8.2indirect
npm@webassemblyjs/ast1.14.1indirect
npm@webassemblyjs/floating-point-hex-parser1.13.2indirect
npm@webassemblyjs/helper-api-error1.13.2indirect
npm@webassemblyjs/helper-buffer1.14.1indirect
npm@webassemblyjs/helper-numbers1.13.2indirect
npm@webassemblyjs/helper-wasm-bytecode1.13.2indirect
npm@webassemblyjs/helper-wasm-section1.14.1indirect
npm@webassemblyjs/ieee7541.13.2indirect
npm@webassemblyjs/leb1281.13.2indirect
npm@webassemblyjs/utf81.13.2indirect
npm@webassemblyjs/wasm-edit1.14.1indirect
npm@webassemblyjs/wasm-gen1.14.1indirect
npm@webassemblyjs/wasm-opt1.14.1indirect
npm@webassemblyjs/wasm-parser1.14.1indirect
npm@webassemblyjs/wast-printer1.14.1indirect
npm@xtuc/ieee7541.2.0indirect
npm@xtuc/long4.2.2indirect
npm@yr/monotone-cubic-spline1.0.3indirect
npmacorn8.15.0indirect
npmacorn8.16.0indirect
npmacorn-import-phases1.0.4indirect
npmacorn-jsx5.3.2indirect
npmajv6.12.6indirect
npmajv8.18.0indirect
npmajv-formats2.1.1indirect
npmajv-keywords3.5.2indirect
npmajv-keywords5.1.0indirect
npmalgoliasearch5.31.0indirect
npmansi-regex5.0.1indirect
npmansi-styles4.3.0indirect
npmanymatch3.1.3indirect
npmargparse2.0.1indirect
npmarray-union2.1.0indirect
npmasynckit0.4.0indirect
npmbalanced-match1.0.2indirect
npmbaseline-browser-mapping2.10.0indirect
npmbig.js5.2.2indirect
npmbinary-extensions2.3.0indirect
npmbirpc2.4.0indirect
npmboolbase1.0.0indirect
npmbrace-expansion1.1.12indirect
npmbrace-expansion2.0.2indirect
npmbraces3.0.3indirect
npmbrowserslist4.28.1indirect
npmbuffer-from1.1.2indirect
npmc122.0.1indirect
npmcacheable2.3.3indirect
npmcall-bind-apply-helpers1.0.2indirect
npmcallsite1.0.0indirect
npmcallsites3.1.0indirect
npmcamelcase5.3.1indirect
npmcaniuse-lite1.0.30001778indirect
npmccount2.0.1indirect
npmchalk4.1.2indirect
npmcharacter-entities-html42.1.0indirect
npmcharacter-entities-legacy3.0.0indirect
npmchevrotain11.0.3indirect
npmchevrotain-allstar0.3.1indirect
npmchokidar3.6.0indirect
npmchokidar4.0.3indirect
npmchownr2.0.0indirect
npmchrome-trace-event1.0.4indirect
npmcitty0.1.6indirect
npmclean-css5.3.3indirect
npmcliui6.0.0indirect
npmcolor-convert2.0.1indirect
npmcolor-name1.1.4indirect
npmcombined-stream1.0.8indirect
npmcomma-separated-tokens2.0.3indirect
npmcommander12.1.0indirect
npmcommander2.20.3indirect
npmcommander7.2.0indirect
npmcommander8.3.0indirect
npmcommondir1.0.1indirect
npmconcat-map0.0.1indirect
npmconfbox0.1.8indirect
npmconsola3.4.2indirect
npmcopy-anything3.0.5indirect
npmcose-base1.0.3indirect
npmcose-base2.2.0indirect
npmcrelt1.0.6indirect
npmcross-spawn7.0.6indirect
npmcssesc3.0.0indirect
npmcsstype3.1.3indirect
npmcsstype3.2.3indirect
npmcytoscape3.33.1indirect
npmcytoscape-cose-bilkent4.1.0indirect
npmcytoscape-fcose2.2.0indirect
npmd37.9.0indirect
npmd3-array2.12.1indirect
npmd3-array3.2.4indirect
npmd3-axis3.0.0indirect
npmd3-brush3.0.0indirect
npmd3-chord3.0.1indirect
npmd3-color3.1.0indirect
npmd3-contour4.0.2indirect
npmd3-delaunay6.0.4indirect
npmd3-dispatch3.0.1indirect
npmd3-drag3.0.0indirect
npmd3-dsv3.0.1indirect
npmd3-ease3.0.1indirect
npmd3-fetch3.0.1indirect
npmd3-force3.0.0indirect
npmd3-format3.1.2indirect
npmd3-geo3.1.1indirect
npmd3-hierarchy3.1.2indirect
npmd3-interpolate3.0.1indirect
npmd3-path1.0.9indirect
npmd3-path3.1.0indirect
npmd3-polygon3.0.1indirect
npmd3-quadtree3.0.1indirect
npmd3-random3.0.1indirect
npmd3-sankey0.12.3indirect
npmd3-scale4.0.2indirect
npmd3-scale-chromatic3.1.0indirect
npmd3-selection3.0.0indirect
npmd3-shape1.3.7indirect
npmd3-shape3.2.0indirect
npmd3-time3.1.0indirect
npmd3-time-format4.1.0indirect
npmd3-timer3.0.1indirect
npmd3-transition3.0.1indirect
npmd3-zoom3.0.0indirect
npmdagre-d3-es7.0.13indirect
npmdayjs1.11.19indirect
npmde-indent1.0.2indirect
npmdebug4.4.3indirect
npmdecache4.6.2indirect
npmdecamelize1.2.0indirect
npmdeep-is0.1.4indirect
npmdefu6.1.7indirect
npmdelaunator5.0.1indirect
npmdelayed-stream1.0.0indirect
npmdequal2.0.3indirect
npmdestr2.0.5indirect
npmdevlop1.1.0indirect
npmdijkstrajs1.0.3indirect
npmdir-glob3.0.1indirect
npmdoctrine3.0.0indirect
npmdotenv16.6.1indirect
npmdunder-proto1.0.1indirect
npmelectron-to-chromium1.5.307indirect
npmemoji-regex8.0.0indirect
npmemoji-regex-xs1.0.0indirect
npmemojis-list3.0.0indirect
npmenhanced-resolve5.20.0indirect
npmentities4.5.0indirect
npmentities7.0.1indirect
npmes-define-property1.0.1indirect
npmes-errors1.3.0indirect
npmes-module-lexer2.0.0indirect
npmes-object-atoms1.1.1indirect
npmes-set-tostringtag2.1.0indirect
npmesbuild0.21.5indirect
npmesbuild0.25.12indirect
npmescalade3.2.0indirect
npmescape-string-regexp4.0.0indirect
npmeslint8.48.0indirect
npmeslint-config-prettier8.10.2indirect
npmeslint-plugin-prettier5.5.5indirect
npmeslint-plugin-vue9.17.0indirect
npmeslint-scope5.1.1indirect
npmeslint-scope7.2.2indirect
npmeslint-visitor-keys3.4.3indirect
npmespree9.6.1indirect
npmesquery1.7.0indirect
npmesrecurse4.3.0indirect
npmestraverse4.3.0indirect
npmestraverse5.3.0indirect
npmestree-walker2.0.2indirect
npmesutils2.0.3indirect
npmevents3.3.0indirect
npmfast-deep-equal3.1.3indirect
npmfast-diff1.3.0indirect
npmfast-glob3.3.3indirect
npmfast-json-stable-stringify2.1.0indirect
npmfast-levenshtein2.0.6indirect
npmfast-uri3.1.0indirect
npmfastq1.20.1indirect
npmfdir6.5.0indirect
npmfile-entry-cache6.0.1indirect
npmfile-loader6.2.0indirect
npmfill-range7.1.1indirect
npmfind-cache-dir3.3.2indirect
npmfind-up4.1.0indirect
npmfind-up5.0.0indirect
npmflat-cache3.2.0indirect
npmflat-cache6.1.20indirect
npmflatted3.3.3indirect
npmfocus-trap7.6.5indirect
npmfollow-redirects1.15.11indirect
npmfontverter2.0.0indirect
npmform-data4.0.5indirect
npmfs-minipass2.1.0indirect
npmfs.realpath1.0.0indirect
npmfsevents2.3.3indirect
npmfunction-bind1.1.2indirect
npmget-caller-file2.0.5indirect
npmget-intrinsic1.3.0indirect
npmget-proto1.0.1indirect
npmgiget1.2.5indirect
npmglob7.2.3indirect
npmglob-parent5.1.2indirect
npmglob-parent6.0.2indirect
npmglob-to-regexp0.4.1indirect
npmglobals13.24.0indirect
npmglobby11.1.0indirect
npmgopd1.2.0indirect
npmgraceful-fs4.2.11indirect
npmgraphemer1.4.0indirect
npmhachure-fill0.5.2indirect
npmhandlebars4.7.8indirect
npmharfbuzzjs0.4.15indirect
npmhas-flag4.0.0indirect
npmhas-symbols1.1.0indirect
npmhas-tostringtag1.0.2indirect
npmhashery1.5.0indirect
npmhasown2.0.2indirect
npmhast-util-to-html9.0.5indirect
npmhast-util-whitespace3.0.0indirect
npmhe1.2.0indirect
npmhookable5.5.3indirect
npmhookified1.15.1indirect
npmhtml-void-elements3.0.0indirect
npmiconv-lite0.6.3indirect
npmignore5.3.2indirect
npmimmutable4.3.8indirect
npmimport-fresh3.3.1indirect
npmimurmurhash0.1.4indirect
npminflight1.0.6indirect
npminherits2.0.4indirect
npminternmap1.0.1indirect
npminternmap2.0.3indirect
npminterpret1.4.0indirect
npmis-binary-path2.1.0indirect
npmis-buffer2.0.5indirect
npmis-core-module2.16.1indirect
npmis-extglob2.1.1indirect
npmis-fullwidth-code-point3.0.0indirect
npmis-glob4.0.3indirect
npmis-number7.0.0indirect
npmis-path-inside3.0.3indirect
npmis-what4.1.16indirect
npmisexe2.0.0indirect
npmjest-worker27.5.1indirect
npmjiti2.7.0indirect
npmjs-yaml4.1.1indirect
npmjson-buffer3.0.1indirect
npmjson-parse-even-better-errors2.3.1indirect
npmjson-schema-traverse0.4.1indirect
npmjson-schema-traverse1.0.0indirect
npmjson-stable-stringify-without-jsonify1.0.1indirect
npmjson52.2.3indirect
npmkeyv4.5.4indirect
npmkeyv5.6.0indirect
npmkhroma2.1.0indirect
npmlangium3.3.1indirect
npmlayout-base1.0.2indirect
npmlayout-base2.0.1indirect
npmlevn0.4.1indirect
npmlinkify-it5.0.0indirect
npmlinkify-it5.0.1indirect
npmloader-runner4.3.1indirect
npmloader-utils2.0.4indirect
npmlocate-path5.0.0indirect
npmlocate-path6.0.0indirect
npmlodash-es4.17.23indirect
npmlodash.merge4.6.2indirect
npmmagic-string0.30.17indirect
npmmagic-string0.30.21indirect
npmmake-dir3.1.0indirect
npmmark.js8.11.1indirect
npmmarkdown-it-container4.0.0indirect
npmmarkdown-it-footnote4.0.0indirect
npmmarkdown-it-ins4.0.0indirect
npmmarkdown-it-mark4.0.0indirect
npmmarkdown-it-sub2.0.0indirect
npmmarkdown-it-sup2.0.0indirect
npmmarkdown-it-task-checkbox1.0.6indirect
npmmarkdown-it-ts1.0.2indirect
npmmarked16.4.2indirect
npmmarkstream-core1.0.3indirect
npmmath-intrinsics1.1.0indirect
npmmdast-util-to-hast13.2.0indirect
npmmdast-util-to-hast13.2.1indirect
npmmdurl2.0.0indirect
npmmerge-stream2.0.0indirect
npmmerge21.4.1indirect
npmmicromark-util-character2.1.1indirect
npmmicromark-util-encode2.0.1indirect
npmmicromark-util-sanitize-uri2.0.1indirect
npmmicromark-util-symbol2.0.1indirect
npmmicromark-util-types2.0.2indirect
npmmicromatch4.0.8indirect
npmmime-db1.52.0indirect
npmmime-types2.1.35indirect
npmminimatch3.1.2indirect
npmminimatch9.0.5indirect
npmminimist1.2.8indirect
npmminipass3.3.6indirect
npmminipass5.0.0indirect
npmminisearch7.1.2indirect
npmminizlib2.1.2indirect
npmmitt3.0.1indirect
npmmkdirp1.0.4indirect
npmmlly1.8.0indirect
npmms2.1.3indirect
npmmuggle-string0.3.1indirect
npmnanoid3.3.11indirect
npmnatural-compare1.4.0indirect
npmnatural-compare-lite1.4.0indirect
npmneo-async2.6.2indirect
npmnode-fetch-native1.6.7indirect
npmnode-releases2.0.36indirect
npmnormalize-path3.0.0indirect
npmnth-check2.1.1indirect
npmnull-loader4.0.1indirect
npmnypm0.5.4indirect
npmohash1.1.6indirect
npmonce1.4.0indirect
npmoniguruma-parser0.12.1indirect
npmoniguruma-to-es3.1.1indirect
npmoniguruma-to-es4.3.4indirect
npmoptionator0.9.4indirect
npmorderedmap2.1.1indirect
npmp-limit2.3.0indirect
npmp-limit3.1.0indirect
npmp-locate4.1.0indirect
npmp-locate5.0.0indirect
npmp-try2.2.0indirect
npmpackage-manager-detector1.6.0indirect
npmpako1.0.11indirect
npmparent-module1.0.1indirect
npmpath-browserify1.0.1indirect
npmpath-data-parser0.1.0indirect
npmpath-exists4.0.0indirect
npmpath-is-absolute1.0.1indirect
npmpath-key3.1.1indirect
npmpath-parse1.0.7indirect
npmpath-type4.0.0indirect
npmpathe1.1.2indirect
npmpathe2.0.3indirect
npmperfect-debounce1.0.0indirect
npmpicocolors1.1.1indirect
npmpicomatch2.3.1indirect
npmpicomatch4.0.3indirect
npmpkg-dir4.2.0indirect
npmpkg-types1.3.1indirect
npmpngjs5.0.0indirect
npmpoints-on-curve0.2.0indirect
npmpoints-on-path0.2.1indirect
npmpostcss8.5.6indirect
npmpostcss-selector-parser6.1.2indirect
npmpreact10.26.9indirect
npmprelude-ls1.2.1indirect
npmprettier3.0.2indirect
npmprettier-linter-helpers1.0.1indirect
npmproperty-expr2.0.6indirect
npmproperty-information7.1.0indirect
npmprosemirror-changeset2.4.0indirect
npmprosemirror-collab1.3.1indirect
npmprosemirror-commands1.7.1indirect
npmprosemirror-dropcursor1.8.2indirect
npmprosemirror-gapcursor1.4.1indirect
npmprosemirror-history1.5.0indirect
npmprosemirror-inputrules1.5.1indirect
npmprosemirror-keymap1.2.3indirect
npmprosemirror-markdown1.13.4indirect
npmprosemirror-menu1.3.0indirect
npmprosemirror-model1.25.4indirect
npmprosemirror-schema-basic1.2.4indirect
npmprosemirror-schema-list1.5.1indirect
npmprosemirror-state1.4.4indirect
npmprosemirror-tables1.8.5indirect
npmprosemirror-trailing-node3.0.0indirect
npmprosemirror-transform1.11.0indirect
npmprosemirror-view1.41.6indirect
npmproxy-from-env1.1.0indirect
npmpunycode2.3.1indirect
npmpunycode.js2.3.1indirect
npmqified0.6.0indirect
npmquerystring0.2.1indirect
npmqueue-microtask1.2.3indirect
npmrc92.1.2indirect
npmreaddirp3.6.0indirect
npmreaddirp4.1.2indirect
npmrechoir0.6.2indirect
npmregex6.0.1indirect
npmregex6.1.0indirect
npmregex-recursion6.0.2indirect
npmregex-utilities2.3.0indirect
npmrequire-directory2.1.1indirect
npmrequire-from-string2.0.2indirect
npmrequire-main-filename2.0.0indirect
npmresolve1.22.11indirect
npmresolve-from4.0.0indirect
npmreusify1.1.0indirect
npmrfdc1.4.1indirect
npmrimraf3.0.2indirect
npmrobust-predicates3.0.2indirect
npmrollup4.44.2indirect
npmrollup4.59.0indirect
npmrope-sequence1.3.4indirect
npmroughjs4.6.6indirect
npmrun-parallel1.2.0indirect
npmrw1.3.3indirect
npmsafer-buffer2.1.2indirect
npmsass1.66.1indirect
npmsass-loader13.3.2indirect
npmschema-utils3.3.0indirect
npmschema-utils4.3.3indirect
npmsearch-insights2.17.3indirect
npmsemver6.3.1indirect
npmsemver7.7.4indirect
npmset-blocking2.0.0indirect
npmshebang-command2.0.0indirect
npmshebang-regex3.0.0indirect
npmshelljs0.8.5indirect
npmshiki-stream0.1.4indirect
npmslash3.0.0indirect
npmsource-map0.6.1indirect
npmsource-map-js1.2.1indirect
npmsource-map-support0.5.21indirect
npmspace-separated-tokens2.0.2indirect
npmspeakingurl14.0.1indirect
npmstate-local1.0.7indirect
npmstream-markdown-parser1.0.8indirect
npmstring-width4.2.3indirect
npmstringify-entities4.0.4indirect
npmstrip-ansi6.0.1indirect
npmstrip-json-comments3.1.1indirect
npmstylis4.3.6indirect
npmsubset-font2.4.0indirect
npmsuperjson2.2.2indirect
npmsupports-color7.2.0indirect
npmsupports-color8.1.1indirect
npmsupports-preserve-symlinks-flag1.0.0indirect
npmsvg.draggable.js2.2.2indirect
npmsvg.easing.js2.0.0indirect
npmsvg.filter.js2.0.2indirect
npmsvg.js2.7.1indirect
npmsvg.pathmorphing.js0.1.3indirect
npmsvg.resize.js1.4.3indirect
npmsvg.select.js2.1.2indirect
npmsvg.select.js3.0.1indirect
npmsynckit0.11.12indirect
npmtabbable6.2.0indirect
npmtapable2.3.0indirect
npmtar6.2.1indirect
npmterser5.46.0indirect
npmterser-webpack-plugin5.4.0indirect
npmtext-table0.2.0indirect
npmtiny-case1.0.3indirect
npmtinyexec0.3.2indirect
npmtinyexec1.0.2indirect
npmtinyglobby0.2.15indirect
npmtippy.js6.3.7indirect
npmto-regex-range5.0.1indirect
npmtoposort2.0.2indirect
npmtrim-lines3.0.1indirect
npmts-dedent2.2.0indirect
npmtslib1.14.1indirect
npmtsutils3.21.0indirect
npmtype-check0.4.0indirect
npmtype-fest0.20.2indirect
npmtype-fest2.19.0indirect
npmtype-fest4.41.0indirect
npmtypescript5.1.6indirect
npmuc.micro2.1.0indirect
npmufo1.6.3indirect
npmuglify-js3.19.3indirect
npmundici-types6.21.0indirect
npmunist-util-is6.0.0indirect
npmunist-util-is6.0.1indirect
npmunist-util-position5.0.0indirect
npmunist-util-stringify-position4.0.0indirect
npmunist-util-visit5.0.0indirect
npmunist-util-visit5.1.0indirect
npmunist-util-visit-parents6.0.1indirect
npmunist-util-visit-parents6.0.2indirect
npmupath2.0.1indirect
npmupdate-browserslist-db1.2.3indirect
npmuri-js4.4.1indirect
npmutil-deprecate1.0.2indirect
npmuuid11.1.0indirect
npmvfile6.0.3indirect
npmvfile-message4.0.2indirect
npmvfile-message4.0.3indirect
npmvite5.4.19indirect
npmvite6.4.1indirect
npmvite-plugin-webfont-dl3.12.0indirect
npmvitepress1.6.4indirect
npmvscode-jsonrpc8.2.0indirect
npmvscode-languageserver9.0.1indirect
npmvscode-languageserver-protocol3.17.5indirect
npmvscode-languageserver-textdocument1.0.12indirect
npmvscode-languageserver-types3.17.5indirect
npmvscode-uri3.0.8indirect
npmvue-cli-plugin-vuetify2.5.8indirect
npmvue-demi0.14.10indirect
npmvue-eslint-parser9.4.3indirect
npmvue-template-compiler2.7.16indirect
npmvue-tsc1.8.8indirect
npmvuetify-loader2.0.0-alpha.9indirect
npmw3c-keyname2.2.8indirect
npmwatchpack2.5.1indirect
npmwawoff22.0.1indirect
npmwebpack5.105.0indirect
npmwebpack-sources3.3.4indirect
npmwhich2.0.2indirect
npmwhich-module2.0.1indirect
npmwoff2sfnt-sfnt2woff1.0.0indirect
npmword-wrap1.2.5indirect
npmwordwrap1.0.0indirect
npmwrap-ansi6.2.0indirect
npmwrappy1.0.2indirect
npmxml-name-validator4.0.0indirect
npmy18n4.0.3indirect
npmyallist4.0.0indirect
npmyargs15.4.1indirect
npmyargs-parser18.1.3indirect
npmyocto-queue0.1.0indirect
npmzwitch2.0.4indirect
PyPIcommitizenindirect
PyPIpytestindirect
PyPIpytest-asyncioindirect
PyPIpytest-covindirect
PyPIruff0.15.22indirect
Dependency advisories 0

Installing pypi:AstrBot@4.27.1 pulls in 142 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": {
    "icon": {
      "bytes": 5428,
      "width": 256,
      "height": 256,
      "rejected": [
        {
          "url": "https://astrbot.app/vite.svg",
          "reason": "served HTML, not an image",
          "source_type": "homepage"
        },
        {
          "url": "https://astrbot.app/favicon.ico",
          "reason": "served HTML, not an image",
          "source_type": "homepage"
        },
        {
          "url": "https://github.com/user-attachments/assets/36fb04e4-cc75-4454-bd8b-049d11aa86f9",
          "reason": "not square enough (1520x470)",
          "source_type": "readme"
        },
        {
          "url": "https://trendshift.io/api/badge/repositories/21369",
          "reason": "dimensions undeclared",
          "source_type": "readme"
        },
        {
          "url": "https://api.hellogithub.com/v1/widgets/recommend.svg?rid=d127d50cd5e54c5382328acc3bb25483&claim_uid=ZO9by7qCXgSd6Lp&t=2",
          "reason": "not square enough (250x54)",
          "source_type": "readme"
        },
        {
          "url": "https://deepwiki.com/badge.svg",
          "reason": "too small (109x20)",
          "source_type": "readme"
        },
        {
          "url": "https://gitcode.com/Soulter/AstrBot/star/badge.svg",
          "reason": "too small (132x20)",
          "source_type": "readme"
        }
      ],
      "collected": true,
      "media_type": "image/png",
      "source_url": "https://avatars.githubusercontent.com/u/197911947?v=4&s=256",
      "source_type": "avatar",
      "content_hash": "77d2eafb93edb495b89d70a54b44370ca4bc1aad15fa2ae83e4f5bd04774ae5f",
      "candidates_considered": 8
    },
    "repo": {
      "topics": [
        "ai",
        "chatbot",
        "chatgpt",
        "openai",
        "qqbot",
        "gpt",
        "qq",
        "agent",
        "docker",
        "llm",
        "python",
        "telegram",
        "gemini",
        "llama",
        "mcp",
        "discord",
        "astrbot"
      ],
      "is_fork": false,
      "size_kb": 69642,
      "has_wiki": true,
      "homepage": "https://astrbot.app",
      "languages": {
        "CSS": 26144,
        "Vue": 2090745,
        "HTML": 27618,
        "SCSS": 18783,
        "Shell": 15779,
        "Python": 6962835,
        "Makefile": 1751,
        "Dockerfile": 871,
        "JavaScript": 168051,
        "TypeScript": 526601
      },
      "pushed_at": "2026-08-04T07:17:40Z",
      "created_at": "2022-12-08T13:27:46Z",
      "owner_type": "Organization",
      "updated_at": "2026-08-05T01:00:53Z",
      "description": "AI Agent Assistant & development framework that integrates lots of IM platforms, LLMs, plugins and AI feature, and can be your openclaw alternative. ✨",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "AGPL-3.0",
      "default_branch": "master",
      "license_spdx_raw": "AGPL-3.0",
      "primary_language": "Python",
      "significant_languages": [
        "Python",
        "Vue"
      ]
    },
    "owner": {
      "blog": "https://astrbot.app",
      "name": "AstrBot AI",
      "type": "Organization",
      "login": "AstrBotDevs",
      "company": null,
      "location": "China",
      "followers": 520,
      "avatar_url": "https://avatars.githubusercontent.com/u/197911947?v=4",
      "created_at": "2025-02-05T12:01:23Z",
      "is_verified": null,
      "public_repos": 32,
      "account_age_days": 545
    },
    "license": {
      "state": "standard",
      "spdx_id": "AGPL-3.0",
      "raw_spdx": "AGPL-3.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v4.27.1",
          "kind": "patch",
          "published_at": "2026-08-02T16:04:03Z"
        },
        {
          "tag": "v4.27.0",
          "kind": "minor",
          "published_at": "2026-08-02T09:55:56Z"
        },
        {
          "tag": "v4.26.8",
          "kind": "patch",
          "published_at": "2026-07-28T16:02:49Z"
        },
        {
          "tag": "v4.26.7",
          "kind": "patch",
          "published_at": "2026-07-18T12:34:44Z"
        },
        {
          "tag": "v4.26.6",
          "kind": "patch",
          "published_at": "2026-07-14T01:38:35Z"
        },
        {
          "tag": "v4.26.5",
          "kind": "patch",
          "published_at": "2026-07-07T01:57:44Z"
        },
        {
          "tag": "v4.26.4",
          "kind": "patch",
          "published_at": "2026-07-02T16:54:48Z"
        },
        {
          "tag": "v4.26.3",
          "kind": "patch",
          "published_at": "2026-06-30T12:16:52Z"
        },
        {
          "tag": "v4.26.2",
          "kind": "patch",
          "published_at": "2026-06-27T09:53:04Z"
        },
        {
          "tag": "v4.26.1",
          "kind": "patch",
          "published_at": "2026-06-25T15:14:48Z"
        },
        {
          "tag": "v4.26.0",
          "kind": "minor",
          "published_at": "2026-06-24T15:47:14Z"
        },
        {
          "tag": "v4.25.6",
          "kind": "patch",
          "published_at": "2026-06-21T09:40:08Z"
        },
        {
          "tag": "v4.25.6-rc.3",
          "kind": "prerelease",
          "published_at": "2026-06-21T09:22:59Z"
        },
        {
          "tag": "v4.25.6-rc.2",
          "kind": "prerelease",
          "published_at": "2026-06-21T09:04:47Z"
        },
        {
          "tag": "v4.25.6-rc.1",
          "kind": "prerelease",
          "published_at": "2026-06-21T08:43:42Z"
        },
        {
          "tag": "v4.26.0-beta.12",
          "kind": "prerelease",
          "published_at": "2026-06-21T06:15:38Z"
        },
        {
          "tag": "v4.26.0-beta.11",
          "kind": "prerelease",
          "published_at": "2026-06-20T14:36:35Z"
        },
        {
          "tag": "v4.26.0-beta.10",
          "kind": "prerelease",
          "published_at": "2026-06-19T16:10:44Z"
        },
        {
          "tag": "v4.26.0-beta.9",
          "kind": "prerelease",
          "published_at": "2026-06-19T09:51:10Z"
        },
        {
          "tag": "v4.26.0-beta.8",
          "kind": "prerelease",
          "published_at": "2026-06-17T16:17:16Z"
        },
        {
          "tag": "v4.26.0-beta.4",
          "kind": "prerelease",
          "published_at": "2026-06-17T03:16:43Z"
        },
        {
          "tag": "v4.26.0-beta.3",
          "kind": "prerelease",
          "published_at": "2026-06-16T11:16:27Z"
        },
        {
          "tag": "v4.26.0-beta.2",
          "kind": "prerelease",
          "published_at": "2026-06-16T04:46:07Z"
        },
        {
          "tag": "v4.26.0-beta.1",
          "kind": "prerelease",
          "published_at": "2026-06-15T05:32:21Z"
        },
        {
          "tag": "v4.25.5",
          "kind": "patch",
          "published_at": "2026-06-07T17:26:28Z"
        },
        {
          "tag": "v4.25.4",
          "kind": "patch",
          "published_at": "2026-06-07T04:38:36Z"
        },
        {
          "tag": "v4.25.3",
          "kind": "patch",
          "published_at": "2026-06-05T16:55:15Z"
        },
        {
          "tag": "v4.25.2",
          "kind": "patch",
          "published_at": "2026-05-30T12:14:13Z"
        },
        {
          "tag": "v4.25.1",
          "kind": "patch",
          "published_at": "2026-05-17T07:05:17Z"
        },
        {
          "tag": "v4.25.0",
          "kind": "minor",
          "published_at": "2026-05-15T17:42:11Z"
        },
        {
          "tag": "v4.24.5",
          "kind": "patch",
          "published_at": "2026-05-13T17:19:52Z"
        },
        {
          "tag": "v4.24.4",
          "kind": "patch",
          "published_at": "2026-05-12T17:49:35Z"
        },
        {
          "tag": "v4.24.2",
          "kind": "patch",
          "published_at": "2026-05-03T16:24:58Z"
        },
        {
          "tag": "v4.24.1",
          "kind": "patch",
          "published_at": "2026-05-03T15:03:19Z"
        },
        {
          "tag": "v4.23.6",
          "kind": "patch",
          "published_at": "2026-04-27T05:09:15Z"
        },
        {
          "tag": "v4.23.5",
          "kind": "patch",
          "published_at": "2026-04-23T14:40:18Z"
        },
        {
          "tag": "v4.23.2",
          "kind": "patch",
          "published_at": "2026-04-19T09:52:51Z"
        },
        {
          "tag": "v4.23.1",
          "kind": "patch",
          "published_at": "2026-04-13T15:42:34Z"
        },
        {
          "tag": "v4.23.0",
          "kind": "minor",
          "published_at": "2026-04-12T16:38:40Z"
        },
        {
          "tag": "v4.23.0-beta.1",
          "kind": "prerelease",
          "published_at": "2026-04-11T13:54:04Z"
        },
        {
          "tag": "v4.22.3",
          "kind": "patch",
          "published_at": "2026-04-04T17:52:53Z"
        },
        {
          "tag": "v4.22.2",
          "kind": "patch",
          "published_at": "2026-03-28T16:35:09Z"
        },
        {
          "tag": "v4.22.1",
          "kind": "patch",
          "published_at": "2026-03-25T16:05:50Z"
        },
        {
          "tag": "v4.22.0",
          "kind": "minor",
          "published_at": "2026-03-22T09:36:24Z"
        },
        {
          "tag": "v4.21.0",
          "kind": "minor",
          "published_at": "2026-03-21T18:03:01Z"
        },
        {
          "tag": "v4.20.1",
          "kind": "patch",
          "published_at": "2026-03-16T16:38:20Z"
        },
        {
          "tag": "v4.20.0",
          "kind": "minor",
          "published_at": "2026-03-12T16:36:05Z"
        },
        {
          "tag": "v4.19.5",
          "kind": "patch",
          "published_at": "2026-03-10T16:19:27Z"
        },
        {
          "tag": "v4.19.4",
          "kind": "patch",
          "published_at": "2026-03-09T03:16:07Z"
        },
        {
          "tag": "v4.19.3",
          "kind": "patch",
          "published_at": "2026-03-08T16:22:52Z"
        },
        {
          "tag": "v4.19.2",
          "kind": "patch",
          "published_at": "2026-03-05T08:12:32Z"
        },
        {
          "tag": "v4.18.3",
          "kind": "patch",
          "published_at": "2026-02-26T11:14:24Z"
        },
        {
          "tag": "v4.18.2",
          "kind": "patch",
          "published_at": "2026-02-24T14:50:53Z"
        },
        {
          "tag": "v4.18.1",
          "kind": "patch",
          "published_at": "2026-02-22T08:46:05Z"
        },
        {
          "tag": "v4.18.0",
          "kind": "minor",
          "published_at": "2026-02-21T16:19:54Z"
        },
        {
          "tag": "v4.17.6",
          "kind": "patch",
          "published_at": "2026-02-20T10:42:59Z"
        },
        {
          "tag": "v4.17.5",
          "kind": "patch",
          "published_at": "2026-02-18T14:37:31Z"
        },
        {
          "tag": "v4.17.4",
          "kind": "patch",
          "published_at": "2026-02-17T13:53:40Z"
        },
        {
          "tag": "v4.17.3",
          "kind": "patch",
          "published_at": "2026-02-17T07:08:17Z"
        },
        {
          "tag": "v4.17.2",
          "kind": "patch",
          "published_at": "2026-02-16T19:04:51Z"
        },
        {
          "tag": "v4.17.1",
          "kind": "patch",
          "published_at": "2026-02-15T16:18:24Z"
        },
        {
          "tag": "v4.17.0",
          "kind": "minor",
          "published_at": "2026-02-15T14:25:10Z"
        },
        {
          "tag": "v4.16.0",
          "kind": "minor",
          "published_at": "2026-02-12T15:34:33Z"
        },
        {
          "tag": "v4.15.0",
          "kind": "minor",
          "published_at": "2026-02-10T15:54:15Z"
        },
        {
          "tag": "v4.14.8",
          "kind": "patch",
          "published_at": "2026-02-08T17:25:30Z"
        },
        {
          "tag": "v4.14.7",
          "kind": "patch",
          "published_at": "2026-02-08T15:23:12Z"
        },
        {
          "tag": "v4.14.6",
          "kind": "patch",
          "published_at": "2026-02-07T15:51:03Z"
        },
        {
          "tag": "v4.14.5",
          "kind": "patch",
          "published_at": "2026-02-06T16:57:47Z"
        },
        {
          "tag": "v4.14.4",
          "kind": "patch",
          "published_at": "2026-02-04T15:26:10Z"
        },
        {
          "tag": "v4.14.3",
          "kind": "patch",
          "published_at": "2026-02-04T12:33:37Z"
        },
        {
          "tag": "v4.14.2",
          "kind": "patch",
          "published_at": "2026-02-04T09:45:18Z"
        },
        {
          "tag": "v4.14.1",
          "kind": "patch",
          "published_at": "2026-02-03T15:41:34Z"
        },
        {
          "tag": "v4.14.0",
          "kind": "minor",
          "published_at": "2026-02-03T14:15:53Z"
        },
        {
          "tag": "v4.13.2",
          "kind": "patch",
          "published_at": "2026-01-31T16:42:40Z"
        },
        {
          "tag": "v4.13.1",
          "kind": "patch",
          "published_at": "2026-01-29T15:35:06Z"
        },
        {
          "tag": "v4.13.0",
          "kind": "minor",
          "published_at": "2026-01-28T16:57:24Z"
        },
        {
          "tag": "v4.12.4",
          "kind": "patch",
          "published_at": "2026-01-24T06:57:58Z"
        },
        {
          "tag": "v4.12.3",
          "kind": "patch",
          "published_at": "2026-01-17T11:13:45Z"
        },
        {
          "tag": "v4.12.2",
          "kind": "patch",
          "published_at": "2026-01-17T10:14:35Z"
        },
        {
          "tag": "v4.12.1",
          "kind": "patch",
          "published_at": "2026-01-15T14:21:14Z"
        },
        {
          "tag": "v4.12.0",
          "kind": "minor",
          "published_at": "2026-01-15T11:56:17Z"
        },
        {
          "tag": "v4.11.4",
          "kind": "patch",
          "published_at": "2026-01-12T12:45:10Z"
        },
        {
          "tag": "v4.11.3",
          "kind": "patch",
          "published_at": "2026-01-12T11:38:08Z"
        },
        {
          "tag": "v4.11.2",
          "kind": "patch",
          "published_at": "2026-01-08T07:36:19Z"
        },
        {
          "tag": "v4.11.1",
          "kind": "patch",
          "published_at": "2026-01-05T12:24:41Z"
        },
        {
          "tag": "v4.11.0",
          "kind": "minor",
          "published_at": "2026-01-05T10:07:42Z"
        },
        {
          "tag": "v4.10.6",
          "kind": "patch",
          "published_at": "2026-01-02T04:17:41Z"
        },
        {
          "tag": "v4.10.5",
          "kind": "patch",
          "published_at": "2025-12-31T10:01:14Z"
        },
        {
          "tag": "v4.10.4",
          "kind": "patch",
          "published_at": "2025-12-31T04:53:03Z"
        },
        {
          "tag": "v4.10.3",
          "kind": "patch",
          "published_at": "2025-12-26T14:42:34Z"
        },
        {
          "tag": "v4.10.2",
          "kind": "patch",
          "published_at": "2025-12-24T13:58:09Z"
        },
        {
          "tag": "v4.10.1",
          "kind": "patch",
          "published_at": "2025-12-23T13:38:08Z"
        },
        {
          "tag": "v4.10.0",
          "kind": "minor",
          "published_at": "2025-12-22T10:13:14Z"
        },
        {
          "tag": "v4.10.0-alpha.2",
          "kind": "prerelease",
          "published_at": "2025-12-21T05:13:56Z"
        },
        {
          "tag": "v4.10.0-alpha.1",
          "kind": "prerelease",
          "published_at": "2025-12-20T09:04:18Z"
        },
        {
          "tag": "v4.9.2",
          "kind": "patch",
          "published_at": "2025-12-15T09:01:36Z"
        },
        {
          "tag": "v4.9.1",
          "kind": "patch",
          "published_at": "2025-12-15T08:09:27Z"
        },
        {
          "tag": "v4.9.0",
          "kind": "minor",
          "published_at": "2025-12-13T10:51:10Z"
        },
        {
          "tag": "v4.8.0",
          "kind": "minor",
          "published_at": "2025-12-05T11:11:57Z"
        },
        {
          "tag": "v4.7.4",
          "kind": "patch",
          "published_at": "2025-12-01T10:43:49Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "bb9b1878474e5ed65667d5c2c6b7fd6efbc51db4",
          "body": null,
          "is_bot": false,
          "headline": "fix: remove invalid file types (#9544)",
          "author_name": "QingFeng",
          "author_login": "QingFeng-awa",
          "committed_at": "2026-08-04T07:17:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "03a6edb29e7e742fb97d5926949c03c3214a31e5",
          "body": "* chore: refactor issue template\n\n* chore: Remove invalid `<br>`\n\n* chore: allow uploading archive files for issue reproduction",
          "is_bot": false,
          "headline": "chore: refactor issue template (#9536)",
          "author_name": "QingFeng",
          "author_login": "QingFeng-awa",
          "committed_at": "2026-08-04T03:26:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "68eab0f3db14bcc1ef41d8d68d7145ced39fd0a4",
          "body": "Bumps the github-actions group with 3 updates: [github/codeql-action](https://github.com/github/codeql-action), [docker/login-action](https://github.com/docker/login-action) and [actions/stale](https://github.com/actions/stale).\n\n\nUpdates `github/codeql-action` from 4 to 4.37.4\n- [Release notes](htt\n[…]\nsion-update:semver-major\n  dependency-group: github-actions\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump the github-actions group with 3 updates (#9532)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-08-04T03:22:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "adce0e59cd53b3d7f95052b629763b64da586bda",
          "body": null,
          "is_bot": false,
          "headline": "fix: use current favicon on login page (#9537)",
          "author_name": "Wei Chengqian",
          "author_login": "wcqqq1214",
          "committed_at": "2026-08-04T03:22:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "253d1ab5b214e3700463438af2a1cf2cbe94fbd4",
          "body": "Remove the custom capability source chip and refine welcome card styling.",
          "is_bot": false,
          "headline": "fix(dashboard): refine capability and welcome styling (#9541)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-08-04T02:55:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6e63474c1368a8456ce7ab306eea1d5930aa29e4",
          "body": null,
          "is_bot": false,
          "headline": "test: isolate API key admin configuration (#9539)",
          "author_name": "Ruochen Pan",
          "author_login": "RC-CHN",
          "committed_at": "2026-08-04T01:51:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "573367b7f36662f9948ba4e39ca2758bf7f5a424",
          "body": "* fix: accept bearer token for backup downloads\n\n* fix: parse backup bearer scheme case-insensitively",
          "is_bot": false,
          "headline": "fix: accept bearer token for backup downloads (#9525)",
          "author_name": "Ruochen Pan",
          "author_login": "RC-CHN",
          "committed_at": "2026-08-03T07:12:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ba7b315749081d0b0eea070a9f8642d04d880b3b",
          "body": "* test: support latest OpenAI usage schema\n\n* chore: bump version to 4.27.1",
          "is_bot": false,
          "headline": "chore: bump version to 4.27.1 (#9520)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-08-02T16:01:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6c19f34bd48313309bd23af731a2351c4c948a3a",
          "body": "* feat: add builtin skill creator\n\n* feat: add builtin PDF skill\n\n* feat: add builtin office skills\n\n* fix: align closed capability status labels",
          "is_bot": false,
          "headline": "feat: add built-in skill creator and document skills (#9517)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-08-02T15:38:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "20c294fcaf0ed5adf7aacb5609ea879a2305545a",
          "body": "* feat: add stateless Responses API provider\n\n* Potential fix for pull request finding 'CodeQL / Incomplete URL substring sanitization'\n\nCo-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>\n\n* fix: use versioned DeepSeek Responses API base URL\n\n* style: format Responses API provider\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: add stateless Responses API provider (#9515)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-08-02T15:15:50Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e4cf9b16817162b5b2918646c665f1a823da5dd3",
          "body": null,
          "is_bot": false,
          "headline": "fix: correct dark theme capability chip colors",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-08-02T15:13:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c68a2ea83bc92a056c82d1009c305bb3a22d7d4c",
          "body": null,
          "is_bot": false,
          "headline": "feat: add yes option to init command (#9514)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-08-02T14:52:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9bb294d8ccf07dba176280233cc23f80d13e8901",
          "body": "* chore: bump version to 4.27.0\n\n* docs: add built-in skills to 4.27.0 changelog\n\n* docs: add v4.27.0 release epigraph",
          "is_bot": false,
          "headline": "chore: bump version to 4.27.0 (#9509)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-08-02T09:53:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6f9e22b0f5fb3d4abcca5f07dba80fabb3a79f4c",
          "body": "* perf: improve knowledge base score fusion\n\n* perf: diversify knowledge base source documents",
          "is_bot": false,
          "headline": "perf: improve knowledge base retrieval quality (#9455)",
          "author_name": "lxfight",
          "author_login": "lxfight",
          "committed_at": "2026-08-02T09:28:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2be0b20541dffca00131ce5e8b0fc59c8c78da82",
          "body": null,
          "is_bot": false,
          "headline": "fix: defer cleanup of outbound audio files (#9506)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-08-02T08:07:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "053cc0eea5e364bcf7c5f00721b3a25ed3daf0dc",
          "body": "* fix: compact completed shell command results\n\n* fix: return plain text for completed shell commands\n\n* chore: keep shell tool description concise\n\n* feat: include completed shell command wall time\n\n* fix: label completed shell command output",
          "is_bot": false,
          "headline": "fix: simplify completed shell command output (#9507)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-08-02T07:53:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "07baa388476030c64bf828655617e5b736e4aae6",
          "body": null,
          "is_bot": false,
          "headline": "refactor: move project composer to bottom",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-08-02T07:36:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4851b5050dea01ff420a49c485ec67d7ff1ef99f",
          "body": null,
          "is_bot": false,
          "headline": "refactor: reduce path token usage (#9505)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-08-02T07:23:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "80ccac1c80f442538e164f76951a4dc107e2b7a1",
          "body": null,
          "is_bot": false,
          "headline": "fix: 修复工具图片缓存目录清理后无法保存 (#9490)",
          "author_name": "氕氙",
          "author_login": "piexian",
          "committed_at": "2026-08-02T06:39:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "17333b4a41674cc286e146a1cad1a332a94a6fec",
          "body": null,
          "is_bot": false,
          "headline": "feat: update project chat input placeholder",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-08-02T06:14:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "258f8538a237a64b5035e9856123f936b2b6f71b",
          "body": "Remove the unused one-hour tool image cleanup path and rely on the global temporary directory cleaner.",
          "is_bot": false,
          "headline": "refactor: remove unused tool image cleanup (#9504)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-08-02T06:02:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a5f8ad408f1e40a878210dd06498d9a4c990f8bc",
          "body": "* fix: resolve double scrollbar in plugin config dialog\n\n* refactor: drop redundant wrapper div in plugin config dialog",
          "is_bot": false,
          "headline": "fix: resolve double scrollbar in plugin config dialog (#9491)",
          "author_name": "Rain-0x01_",
          "author_login": "Rain-0x01-39",
          "committed_at": "2026-08-02T05:44:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "02c49de79b2edeb803101c6082fc13ffae7433fd",
          "body": "* fix: persist terminal tool history\n\n* fix: persist terminal tool token usage\n\n* test: cover checkpoint terminal tool results",
          "is_bot": false,
          "headline": "fix: persist terminal tool history and token usage (#9500)",
          "author_name": "xiaoxuan010",
          "author_login": "xiaoxuan010",
          "committed_at": "2026-08-02T05:44:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cfe64247421af56df09d2b5186b46350b50ead4d",
          "body": null,
          "is_bot": false,
          "headline": "fix: harden API key scope boundaries (#9503)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-08-02T05:19:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "49095d3ba3fca9272a67aa5eeab2f6c0719c5091",
          "body": null,
          "is_bot": false,
          "headline": "fix: support line writes for managed shell sessions (#9501)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-08-02T03:11:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0283f923312dd011599e41b0772566589e51ba7a",
          "body": null,
          "is_bot": false,
          "headline": "feat: refine skill card layout",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-08-01T14:42:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6f63ce5beeab0fe44c2725a99c7b0f4525cb47ff",
          "body": "* feat: unify extension and persona management\n\n* fix: align persona page header actions",
          "is_bot": false,
          "headline": "feat: unify extension and persona management (#9499)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-08-01T14:17:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e88d5711a25964775e3378e95e8df40164447105",
          "body": null,
          "is_bot": false,
          "headline": "fix: improve ChatUI composer behavior (#9496)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-08-01T11:43:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "21f41c239888d91f03faa4439c4a6456fb1d8e7a",
          "body": null,
          "is_bot": false,
          "headline": "refactor: simplify updater architecture (#9493)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-08-01T10:05:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8609037072e265e2fabba335486ca572d57cad92",
          "body": null,
          "is_bot": false,
          "headline": "docs: add QQ groups 15 and 16",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-08-01T05:44:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "76bcb1dee7ddd2e991991ef3ed4e1d11a8cd1cc1",
          "body": null,
          "is_bot": false,
          "headline": "fix: isolate local shell sessions by sender (#9479)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-07-31T05:09:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8162d84376e617c72121d36984ec0ee5aa19700c",
          "body": "* fix(qqofficial): prevent leading char loss in streaming buffer\n\nCopy stream deltas into an owned buffer instead of holding references\nto yielded MessageChain/Plain objects. Upstream reuse/mutation dropped\nthe first character(s) on group (and C2C) streaming accumulation.\n\nAdd regression tests cover\n[…]\nfix(qqofficial): harden stream delta copy for review feedback\n\n- deepcopy non-Plain components to avoid shared-reference mutation\n- preserve Plain.text as-is instead of coercing falsy values with or \"",
          "is_bot": false,
          "headline": "fix(qqofficial): prevent leading char loss in streaming buffer (#9444)",
          "author_name": "王纯纯",
          "author_login": "OWWZO",
          "committed_at": "2026-07-31T04:40:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "894ea532b081ee0338b0fb7ae587d1bbc0cc166a",
          "body": "* fix: make knowledge base rank fusion deterministic\n\n* fix: surface vllm rerank response failures",
          "is_bot": false,
          "headline": "fix: correct knowledge base ranking behavior (#9454)",
          "author_name": "lxfight",
          "author_login": "lxfight",
          "committed_at": "2026-07-31T04:31:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "877847c193911d282f4876df43ac381754bccc41",
          "body": "* perf: enrich knowledge base document embeddings\n\n* perf: preserve knowledge base heading paths\n\n* test: cover embedding content validation",
          "is_bot": false,
          "headline": "perf: enrich knowledge base embeddings with document context (#9457)",
          "author_name": "lxfight",
          "author_login": "lxfight",
          "committed_at": "2026-07-31T04:27:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bd3305d24b98e4229a49e630030654e3c2d27638",
          "body": "* fix: localize future task times\n\n* fix: narrow timezone lookup exception handling",
          "is_bot": false,
          "headline": "fix: localize future task times (#9462)",
          "author_name": "Wei Chengqian",
          "author_login": "wcqqq1214",
          "committed_at": "2026-07-31T04:26:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "809517311a63b38a9a5a4d6f299ae2139841442e",
          "body": null,
          "is_bot": false,
          "headline": "feat: use PowerShell for Windows local shell (#9471)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-07-30T15:40:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d749d6fd41189ec002f3a24a61ea6fda479b582a",
          "body": null,
          "is_bot": false,
          "headline": "feat: add managed local shell sessions (#9470)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-07-30T15:05:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ea1a80ab7f658bf14877507a2e0871e1eabb4e95",
          "body": "…ol_calls_model (#9469)\n\nThe method name was misspelled since its introduction in #3234\n('to_calls' instead of 'tool_calls'); the correctly spelled name has\nnever existed in the codebase.\n\n- Rename the method to to_openai_tool_calls_model\n- Keep the old name as a @deprecated alias for backward compa\n[…]\n (ProviderResult/LLMResponse is part of the plugin-facing API surface)\n- Update the only internal caller (tool_loop_agent_runner.py)\n- Point the to_openai_tool_calls deprecation reason at the new name",
          "is_bot": false,
          "headline": "refactor: rename LLMResponse.to_openai_to_calls_model to to_openai_to…",
          "author_name": "Ruochen Pan",
          "author_login": "RC-CHN",
          "committed_at": "2026-07-30T14:36:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d8d8a7ad511b6fb18bd25797697c96c776f58c60",
          "body": "…(#9468)\n\n* refactor: formalize deprecation markings with @deprecated decorators\n\nAdd @deprecated decorators (from the `deprecated` package, following\nthe existing BaseDatabase precedent) to callables that were previously\nmarked as deprecated only in comments or docstrings:\n\n- SharedPreferences sync\n[…]\nhe ProviderResult.to_openai_tool_calls reason was checked and\nleft unchanged -- to_openai_to_calls_model is the actual method name\n(entities.py:424, used by tool_loop_agent_runner.py:953), not a typo.",
          "is_bot": false,
          "headline": "refactor: formalize deprecation markings with @deprecated decorators …",
          "author_name": "Ruochen Pan",
          "author_login": "RC-CHN",
          "committed_at": "2026-07-30T14:18:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e80e01c77693355cf7ef42a607ea89e9093b9b2b",
          "body": "…res (#9465)\n\n* feat: implement group message history persistence and retrieval features\n\n* feat: update group message history configuration and documentation",
          "is_bot": false,
          "headline": "feat: implement group message history persistence and retrieval featu…",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-07-30T10:58:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fc81f2991d72ce6c458a420f8213e027bcb61df7",
          "body": null,
          "is_bot": false,
          "headline": "fix: preserve streaming response tail (#9439)",
          "author_name": "Wei Chengqian",
          "author_login": "wcqqq1214",
          "committed_at": "2026-07-29T15:29:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d149894978c3783c02bdd6248b794f77a370af03",
          "body": null,
          "is_bot": false,
          "headline": "fix: lazily import BM25 dependency (#9435)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-07-29T08:08:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "60c9e68d50dc9b9ed58503f21a0b77a8d0bd2159",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump version to 4.26.8 (#9421)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-07-28T15:57:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "73ecc394deb2f6fc37fd41a82f5bb247e4781b13",
          "body": "* feat: add ChatUI workspace file browser\n\n* fix: harden workspace path validation\n\n* fix: validate workspace download boundary\n\n* fix: resolve workspace files from directory entries",
          "is_bot": false,
          "headline": "feat: add ChatUI workspace file browser (#9432)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-07-28T15:53:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b0cb91f7a6110074b61927a077b92ed66a195e27",
          "body": "…in rank fusion to avoid distorted ordering across independent FTS5 indexes (#9426)",
          "is_bot": false,
          "headline": "fix: preserve per-knowledge-base sparse retrieval ranks and use them …",
          "author_name": "chinatsu1124",
          "author_login": "chinatsu1124",
          "committed_at": "2026-07-28T13:54:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d9790e3ea6b799c6d5437baf4b194de96bc29801",
          "body": "…xy is configured to prevent local API requests from being intercepted (#8897)\n\ncloses #8871\n\n---------\n\nCo-authored-by: Soulter <905617992@qq.com>",
          "is_bot": false,
          "headline": "fix(proxy): ensure AstrBot ignores system proxy variables when no pro…",
          "author_name": "NayukiChiba",
          "author_login": "NayukiChiba",
          "committed_at": "2026-07-28T13:52:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ad22c676b6d7eef3ab823af6ba7de053f7f3dce0",
          "body": "…(#9137)\n\n* feat: add DashScope embedding provider with multimodal model support\n\n* fix: use per-call base_address, handle empty input and invalid dimensions",
          "is_bot": false,
          "headline": "feat: add DashScope embedding provider with multimodal model support …",
          "author_name": "Fiber",
          "author_login": "leafliber",
          "committed_at": "2026-07-28T13:37:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5b29f6f730274713b91e0acf988cda4c57c617c9",
          "body": "…r chat entries from the console view (#9165)\n\n* feat: 为平台日志增加剔除用户对话功能\n\n* Update astrbot/core/log.py\n\nCo-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>\n\n* Update astrbot/core/log.py\n\nCo-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>\n\n---------\n\nCo-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: add categorization to platform logs and a UI toggle to hide use…",
          "author_name": "M1LKT",
          "author_login": "M1LKT",
          "committed_at": "2026-07-28T13:29:59Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2b90b9467dbd61392213e20524d46e28ebabc13c",
          "body": null,
          "is_bot": false,
          "headline": "fix: update MiMo TTS default model (#9428)",
          "author_name": "Wei Chengqian",
          "author_login": "wcqqq1214",
          "committed_at": "2026-07-28T13:21:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "868c3f137eac18f68cca8fbea3574d8c32fc1b97",
          "body": "…(#9226)\n\n* fix: 优化对话列表加载与请求竞态\n\n- 对话列表改为摘要查询,避免读取和传输完整聊天历史,同时保持详情、导出及插件默认行为兼容\n- 统一筛选、排除和稳定分页逻辑,补充 SQLite 索引并保留全文搜索能力\n- 使用组件级请求编号和取消控制阻止迟到响应覆盖最新状态,修复删除、筛选防抖与分页竞态\n- 增加摘要查询、索引、API 响应和参数清洗回归测试\n\n* fix: 保持摘要历史为合法 JSON\n\n- 摘要查询未加载历史时返回空 JSON 数组字符串\n- 增加管理器摘要结果可解析性的回归测试\n\n* fix: 避免重复显示列表错误\n\n- 仅在保留旧列表数据时显示顶部错误横\n[…]\nt compatibility\n\n* refactor: align conversation history option naming\n\n---------\n\nCo-authored-by: C₂₂H₂₅NO₆ <Sisyphbaous-DT-Project@users.noreply.github.com>\nCo-authored-by: Soulter <905617992@qq.com>",
          "is_bot": false,
          "headline": "fix: improve conversation list performance and prevent stale updates …",
          "author_name": "C₂₂H₂₅NO₆",
          "author_login": "Sisyphbaous-DT-Project",
          "committed_at": "2026-07-28T08:44:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9c9d6095b8525320b7a2d10f35d3d2afe92eb64b",
          "body": "* docs: update plugin publish\n\n* docs: update plugin publish example\n\n* docs: update plugin publish",
          "is_bot": false,
          "headline": "docs: update plugin publish (#9415)",
          "author_name": "XTsat",
          "author_login": "XTsat",
          "committed_at": "2026-07-28T02:16:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ca4c099e2f7f90fa12150549d84bd5f79585b12",
          "body": "…ation (#9411)",
          "is_bot": false,
          "headline": "fix: correct double-escaped regex in Discord slash command name valid…",
          "author_name": "Wei Chengqian",
          "author_login": "wcqqq1214",
          "committed_at": "2026-07-28T02:06:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3f9aa74789f3afa94a36fbbe606edd23666182a5",
          "body": null,
          "is_bot": false,
          "headline": "fix(provider): align Bailian rerank protocol with endpoint (#9413)",
          "author_name": "Stevenqin",
          "author_login": "StevenQinDev",
          "committed_at": "2026-07-28T01:58:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "80f3fd6de576cbb6918ff66f94fd8a33b8dd3e92",
          "body": "…e sync state to ensure persistent jobs are always loaded, even when the scheduler is started early (#9419)\n\n* fix: sync persistent cron jobs after early scheduler start\n\n* fix: resync cron jobs after manager shutdown",
          "is_bot": false,
          "headline": "fix(cron): decouple the cron scheduler running state from the databas…",
          "author_name": "gomico",
          "author_login": "gomico",
          "committed_at": "2026-07-28T01:53:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9ff715f1f2a96889c3ef8644405a1f150ddedd0c",
          "body": "…9402)\n\nBasic retry sent an empty provider, so the backend fell back to the stale persisted provider. Fall back to the current UI selection, matching send behavior.\n\nCloses #9400",
          "is_bot": false,
          "headline": "fix: use current provider selection when regenerating chat message (#…",
          "author_name": "Wei Chengqian",
          "author_login": "wcqqq1214",
          "committed_at": "2026-07-28T01:36:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9848c07721800645eb4e9e02b5256ad56e48b2f0",
          "body": null,
          "is_bot": false,
          "headline": "Update default.py (#9414)",
          "author_name": "lingyun14",
          "author_login": "lingyun14beta",
          "committed_at": "2026-07-28T01:35:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8def35f326aecfec9050e22f670b9a92142bdb42",
          "body": "…416)\n\nBumps the github-actions group with 1 update: [docker/login-action](https://github.com/docker/login-action).\n\n\nUpdates `docker/login-action` from 4.4.0 to 4.5.1\n- [Release notes](https://github.com/docker/login-action/releases)\n- [Commits](https://github.com/docker/login-action/compare/v4.4.0\n[…]\nsion-update:semver-minor\n  dependency-group: github-actions\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump docker/login-action in the github-actions group (#9…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-28T01:32:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2b21a6f635e4fa93be8bcc5d86775069b966f414",
          "body": "… prevent process crash (#9148)\n\n* fix: guard C extension reload in _prefer_module_from_site_packages to prevent process crash\n\n* test: add _has_loaded_c_extension regression tests (10 scenarios)",
          "is_bot": false,
          "headline": "fix: guard C extension reload in _prefer_module_from_site_packages to…",
          "author_name": "伊尔弥亚 - Irmia",
          "author_login": "irmia2026",
          "committed_at": "2026-07-27T06:56:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1fcfffcc60c0b4a3a0a9fad4324af7f0e9f668cc",
          "body": null,
          "is_bot": false,
          "headline": "fix(webui): prevent local plugin upload from hanging (#9406)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-07-26T12:53:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9e3497e6b49f39d62e6105a8beb9df6131435b1e",
          "body": "… (#9382)\n\n* fix: resolve double scrollbar in conversation detail dialog (#9361)\n\n* fix: resolve double scrollbar in console page (#9361)",
          "is_bot": false,
          "headline": "fix: resolve double scrollbar in conversation detail and console page…",
          "author_name": "Rain-0x01_",
          "author_login": "Rain-0x01-39",
          "committed_at": "2026-07-26T08:53:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e36e161abb23a206fc29c8dd796f8c3205e2b900",
          "body": "* fix: handle nested OpenAI completion choices (#9374)\n\n* fix: preserve nested OpenAI completion metadata (#9374)\n\n* Update openai_source.py\n\n---------\n\nCo-authored-by: Soulter <37870767+Soulter@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix: handle nested OpenAI completion choices (#9386)",
          "author_name": "Wei Chengqian",
          "author_login": "wcqqq1214",
          "committed_at": "2026-07-26T08:53:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "44b0db48eb4d98e143161ca1fcc75f9d0d1d921b",
          "body": "* fix: return correct WebChat image MIME types\n\nCo-authored-by: chatgpt-codex-connector[bot] <199175422+chatgpt-codex-connector[bot]@users.noreply.github.com>\n\n* fix: centralize WebChat image MIME mapping\n\nCo-authored-by: chatgpt-codex-connector[bot] <199175422+chatgpt-codex-connector[bot]@users.noreply.github.com>\n\n---------\n\nCo-authored-by: chatgpt-codex-connector[bot] <199175422+chatgpt-codex-connector[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix: return correct WebChat image MIME types (#9319)",
          "author_name": "VectorPeak",
          "author_login": "VectorPeak",
          "committed_at": "2026-07-26T08:50:28Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e732e9564e909b987ec52a045245a0907f9cbcce",
          "body": "* docs: add Windows Docker Desktop deployment guide\n\n* docs: improve Windows Docker Desktop deployment guide\n\n- Change default image to official registry (soulter/astrbot:latest)\n- Move DaoCloud mirror to TIP section\n- Update PowerShell code block language tag to powershell\n- Synchronize Chinese and English versions\n\n* docs: fix incorrect docker run commands in Windows Docker Desktop examples",
          "is_bot": false,
          "headline": "docs: add Windows Docker Desktop deployment guide (#9339)",
          "author_name": "VIOLET",
          "author_login": "PersonalViolet",
          "committed_at": "2026-07-26T08:28:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7f1b6997ea27b517915e3763d9058367841d1e2b",
          "body": "* Add files via upload\n\n* Add files via upload",
          "is_bot": false,
          "headline": "fix: add model config for FishAudio TTS provider (#9381)",
          "author_name": "月凌",
          "author_login": "qiyueling2716",
          "committed_at": "2026-07-26T08:26:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5e68ee76743d9fb1856ad088577bbf6b81610a11",
          "body": "* fix: drop trailing separator from message outline\n\n`_outline_chain` appended a space after every component, so the outline\nalways ended with a stray separator: a chain of `Hello` and `world`\nproduced `\"Hello world \"` instead of `\"Hello world\"`.\n\nJoin the parts with a space instead of appending one\n[…]\nd used by the follow-up stage, which already\ncalled `.strip()` on it.\n\nCloses #9112\n\n* Update test_astr_message_event.py\n\n---------\n\nCo-authored-by: Soulter <37870767+Soulter@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix: drop trailing separator from message outline (#9390)",
          "author_name": "shentry",
          "author_login": "shentry",
          "committed_at": "2026-07-26T08:23:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7c2a2e9d8779363096c7d7680f1520eee4d2d608",
          "body": "…) (#9394)",
          "is_bot": false,
          "headline": "fix: respect zero values for forward parser depth/fetch limits (#9236…",
          "author_name": "Foolllll",
          "author_login": "Foolllll-J",
          "committed_at": "2026-07-26T08:21:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d1ae378e2ca9cfb0b7e41f32a91fc44327f750ef",
          "body": "…resh FAISS index (#9385)\n\nFixes #9375",
          "is_bot": false,
          "headline": "fix(kb): reject a zero/negative embedding dimension when creating a f…",
          "author_name": "Amir Fathi",
          "author_login": "AmirF194",
          "committed_at": "2026-07-26T08:18:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b4459953a6429c67f07325508b917426e0f5e796",
          "body": null,
          "is_bot": false,
          "headline": "fix(dingtalk): handle command errors and rich-text mentions (#9389)",
          "author_name": "Baolin Zhu",
          "author_login": "bowling233",
          "committed_at": "2026-07-26T08:15:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f9c6129b9eecdd0a5c4069954baffc27bea02a0a",
          "body": "Co-authored-by: w33d <w33d@holdfast.local>",
          "is_bot": false,
          "headline": "feat: honor Telegram partial reply quotes (#9236)",
          "author_name": "w33d",
          "author_login": "Last-emo-boy",
          "committed_at": "2026-07-25T08:15:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e8819ac2bdf333504293f88378049e5c837f1c8b",
          "body": null,
          "is_bot": false,
          "headline": "test: prevent updater path tests from creating stray dirs (#9376)",
          "author_name": "Wei Chengqian",
          "author_login": "wcqqq1214",
          "committed_at": "2026-07-25T04:30:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fb02c7273e7df5fc69dc415cd379cab4549730c6",
          "body": "Co-authored-by: w33d <w33d@holdfast.local>",
          "is_bot": false,
          "headline": "fix: 处理 Tavily 日期筛选参数冲突 (#9234)",
          "author_name": "w33d",
          "author_login": "Last-emo-boy",
          "committed_at": "2026-07-24T14:50:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "11a5672efa1d5ed8a07ee0047bb4739df4acc91c",
          "body": null,
          "is_bot": false,
          "headline": "fix: preserve embedding batch result order (#9241)",
          "author_name": "lxfight",
          "author_login": "lxfight",
          "committed_at": "2026-07-24T14:38:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ff3b74d411e6cdee923e30b923d1e1cb4b97aaaa",
          "body": "Co-authored-by: w33d <w33d@holdfast.local>",
          "is_bot": false,
          "headline": "fix: 防止人格编辑弹窗误触关闭 (#9238)",
          "author_name": "w33d",
          "author_login": "Last-emo-boy",
          "committed_at": "2026-07-24T14:37:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d5620d94d76af34cccacfe1cc88e3d34252a6fd7",
          "body": "* fix: check quoted text for content safety\n\n* fix: initialize content safety result\n\n* fix: combine content safety check text\n\n---------\n\nCo-authored-by: JIANZHOU <jzhou2409324124@gmail.com>",
          "is_bot": false,
          "headline": "fix: check quoted text for content safety (#9232)",
          "author_name": "东云",
          "author_login": "2409324124",
          "committed_at": "2026-07-24T14:35:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b39d5048cab9912d89519ca98c1603e91dd76acc",
          "body": "* fix: show progress when saving plugin config\n\n* fix: normalize error message shown when saving plugin config fails\n\n* feat: animate plugin config save progress dialog",
          "is_bot": false,
          "headline": "fix: show progress when saving plugin config (#9327)",
          "author_name": "Rcst20",
          "author_login": "backrooms-yrc",
          "committed_at": "2026-07-24T13:59:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "94a74e2ef3ad5e470bfb43893e287aafa2035984",
          "body": "…ion) (#9350)\n\nPR #8323 inadvertently moved import faiss back to module top level,\nre-introducing the faiss-cpu 1.14.2 deadlock fixed by PR #8696.\n\nThis commit moves the import back inside __init__() (as #8696 did),\nwith local imports in _read_index/_write_index static methods.\nAll ASCII temp-file bridge logic from #8323 is preserved.",
          "is_bot": false,
          "headline": "fix: restore lazy faiss import to prevent process hang (#8695 regress…",
          "author_name": "伊尔弥亚 - Irmia",
          "author_login": "irmia2026",
          "committed_at": "2026-07-24T13:35:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "04fb05c576fee37ceea2dbf4370fbc1428a3884e",
          "body": null,
          "is_bot": false,
          "headline": "fix: preserve checkpoints after failed LLM requests (#9358) (#9359)",
          "author_name": "Wei Chengqian",
          "author_login": "wcqqq1214",
          "committed_at": "2026-07-24T13:34:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fcce0105e581b8677f41124e91462d338de30eda",
          "body": "…(#9367)\n\n- move blocking CPU sampling to a worker thread\n- report AstrBot process usage instead of system-wide CPU usage\n- normalize process usage by the logical CPU count",
          "is_bot": false,
          "headline": "fix(stats): report process CPU usage without blocking the event loop …",
          "author_name": "時壹",
          "author_login": "KBVsent",
          "committed_at": "2026-07-24T13:28:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1240156f99f13a45f9106aab0e46c198cec3a853",
          "body": null,
          "is_bot": false,
          "headline": "chore: pin Ruff to 0.15.22 (#9369)",
          "author_name": "Ruochen Pan",
          "author_login": "RC-CHN",
          "committed_at": "2026-07-24T02:37:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "10e5ca6958c531f386bf6bb02471edd1bc00cec6",
          "body": "* feat(logging): add isolated plugin loggers\n\n* feat(dashboard): configure plugin log levels\n\n* fix(logging): support legacy plugin loggers\n\n* fix(dashboard): sync plugin log level response\n\n* perf(logging): avoid rescanning plugin handlers\n\n* fix(logging): persist plugin levels atomically\n\n* test(logging): use valid logger level mocks",
          "is_bot": false,
          "headline": "Feat: Allow adjust plugin log levels (#9342)",
          "author_name": "Ruochen Pan",
          "author_login": "RC-CHN",
          "committed_at": "2026-07-24T02:03:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2035dbd079375046ce7b82171a04b1f9a63d781a",
          "body": "…mp (#9349)\n\n* fix: move now = datetime.now() inside the lock to avoid stale timestamp in concurrent scenario\n\nWhen multiple coroutines wait for the same session lock, they all capture\n\now = datetime.now() before entering the lock. By the time a coroutine\nactually acquires the lock, the captured tim\n[…]\nhe moment it acquires the lock, fixing the\nstale-timestamp bug for the stall strategy.\n\nCo-authored-by: yunyancuo <3468440670@qq.com>\n\n* test: address review - subclass datetime, derive expected stall",
          "is_bot": false,
          "headline": "fix: move now = datetime.now() inside the lock to avoid stale timesta…",
          "author_name": "yunyancuo",
          "author_login": "yunyancuo",
          "committed_at": "2026-07-22T07:49:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5425470a6668c7f6738b8728c78ece64df2055e0",
          "body": "…eopened) (#8323)\n\n* fix: Faiss read/write on Windows with non-ASCII paths\n\nBridge Faiss C++ fopen() ANSI codepage limitation through\npure ASCII temp files using Python shutil. Also fix dtype=np.int64\nfor IDs, vector.reshape for search, and remove incorrect\nnormalize_L2 on IndexFlatL2.\n\n* fix: narro\n[…]\n, and exception propagation.\n\n* style: ruff format\n\n* chore: ruff check fix\n\n* fix: make search() accept both 1D and 2D vectors, fix caller shape\n\n---------\n\nCo-authored-by: Soulter <905617992@qq.com>",
          "is_bot": false,
          "headline": "fix: Faiss read/write failure on Windows with non-ASCII user paths (r…",
          "author_name": "伊尔弥亚 - Irmia",
          "author_login": "irmia2026",
          "committed_at": "2026-07-22T00:28:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a325819048ff10753c5963527b0d21869152500c",
          "body": "Bumps the github-actions group with 2 updates: [actions/setup-node](https://github.com/actions/setup-node) and [actions/setup-python](https://github.com/actions/setup-python).\n\n\nUpdates `actions/setup-node` from 6 to 7\n- [Release notes](https://github.com/actions/setup-node/releases)\n- [Commits](htt\n[…]\nsion-update:semver-major\n  dependency-group: github-actions\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump the github-actions group with 2 updates (#9333)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-21T15:59:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "596330ff4b3bd4cd09007cca491b24212ee37bd6",
          "body": null,
          "is_bot": false,
          "headline": "docs: recommend QQ official bot for QQ integration",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-07-21T03:23:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1a038533125ad24a37fb1c1e5c7deae782af5c87",
          "body": null,
          "is_bot": false,
          "headline": "docs: update README banners",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-07-20T05:08:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fed29848ca0b3912ab6a8200a10cd0f2cb080f85",
          "body": "* chore: bump version to 4.26.7\n\n* chore: translate core logs to English (#9318)\n\n* chore",
          "is_bot": false,
          "headline": "chore: bump version to 4.26.7 (#9317)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-07-18T12:29:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "82d1d57fa36e19e9782b724cc467cc0d6ec4ef51",
          "body": null,
          "is_bot": false,
          "headline": "chore: translate core logs to English (#9318)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-07-18T12:19:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1ca3715c5440bf2a25ba0f29334716526ac6126d",
          "body": "…kes 2 positional arguments but 3 were given` (#9316)\n\n* fix: make plugin handler binding idempotent\n\n* fix: guard tool handler module lookup\n\n* fix: left-align chat images",
          "is_bot": false,
          "headline": "fix: make plugin handler binding idempotent to fix error like `xxx ta…",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-07-18T11:31:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3504ecb6f16cda861052efb49db91d7f552dc7c4",
          "body": "* fix: accept UTF-8 BOM in plugin schemas\n\n* fix: accept UTF-8 BOM in plugin i18n",
          "is_bot": false,
          "headline": "fix: accept UTF-8 BOM in plugin schemas (#9223)",
          "author_name": "lingyun14",
          "author_login": "lingyun14beta",
          "committed_at": "2026-07-18T10:41:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "390c53827d3bdd6dd30f3523a8989ddc4980df94",
          "body": null,
          "is_bot": false,
          "headline": "style: simplify WebUI sidebar (#9313)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-07-18T10:31:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c1a7b34ecd07e8afdd0d60c688ef36caf9cab93e",
          "body": null,
          "is_bot": false,
          "headline": "fix: stop matching plugin repository URLs (#9314)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-07-18T10:30:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7ef1af23b1b98fbdbfa566d82f9a04501de0bc99",
          "body": null,
          "is_bot": false,
          "headline": "fix: hide command tooltip with suggestion panel (#9312)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-07-18T10:30:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "109e2d19263c1628a9906cd15d71742fde767e38",
          "body": null,
          "is_bot": false,
          "headline": "fix: prevent explain purpose before every tool call",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-07-18T10:23:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b9c5a1f248936bca33b29174c898381f87eee2c4",
          "body": "* fix: detect repeated tool calls by name and arguments\n\n* Update tests/test_tool_loop_agent_runner.py\n\nCo-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>\n\n---------\n\nCo-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "perf: detect repeated tool calls by name and arguments (#9311)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-07-18T10:21:32Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e47e5af9c4b8b5c9dca2f7b14b6b61dfb44a7e0d",
          "body": "…s (#8712)\n\n* feat: implement HTML GenUI component and register custom markdown tags\n\n* fix: expand bot message content width\n\n* feat: add per-request ChatUI flags\n\n* feat: refine ChatUI HTML GenUI prompt for clarity and token efficiency",
          "is_bot": false,
          "headline": "feat: implement HTML GenUI component and register custom markdown tag…",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-07-18T10:06:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "45f4e666e99fa0aa95af448b7642ec84879df683",
          "body": "… (#9310)\n\nThis reverts commit 77340bc50959199b9e15c5a6e11559eb4fcac55a.",
          "is_bot": false,
          "headline": "Revert \"fix(qqofficial): render @ mentions in group messages (#9285)\"…",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-07-18T09:01:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "09a265ba1638824856351e30eb7cb13fb0099e55",
          "body": "Co-authored-by: w33d <w33d@holdfast.local>",
          "is_bot": false,
          "headline": "fix: avoid python-ripgrep crash on Python 3.14 (#9244)",
          "author_name": "w33d",
          "author_login": "Last-emo-boy",
          "committed_at": "2026-07-18T08:52:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "991a8127fca3ab4edabed050b7b6eb02f0f3473f",
          "body": null,
          "is_bot": false,
          "headline": "fix: handle ChatUI follow-up messages (#9309)",
          "author_name": "Soulter",
          "author_login": "Soulter",
          "committed_at": "2026-07-18T08:27:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b853e9f41df9104ee5e11766be2609e8f53ecdb0",
          "body": "* fix: support code block copy over insecure HTTP\n\n* fix: guard code block copy fallback\n\n* fix: preserve code block copy listeners",
          "is_bot": false,
          "headline": "fix: support code block copy over insecure HTTP (#9267)",
          "author_name": "Enterpr1se",
          "author_login": "Enterpr1se0",
          "committed_at": "2026-07-18T08:01:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "77340bc50959199b9e15c5a6e11559eb4fcac55a",
          "body": "* fix(qqofficial): render @ mentions in group messages\n\n- serialize At components as <@openid> markup\n- send mention-bearing replies and proactive messages as Markdown\n- preserve payload compatibility for media and guild channel messages\n- support legacy and current incoming mention formats\n- add re\n[…]\n\n- centralize mention detection and media payload normalization\n- consolidate incoming mention markup cleanup\n- add regression tests for invalid mention IDs\n\n* style(qqofficial): apply Ruff formatting",
          "is_bot": false,
          "headline": "fix(qqofficial): render @ mentions in group messages (#9285)",
          "author_name": "智商局局长",
          "author_login": "IQ-Director",
          "committed_at": "2026-07-18T08:01:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        }
      ],
      "releases_count": 100,
      "commits_last_year": 2173,
      "latest_release_at": "2026-08-02T16:04:03Z",
      "latest_release_tag": "v4.27.1",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 52,
      "days_since_latest_release": 2,
      "mean_days_between_releases": 4.2
    },
    "artifacts": {
      "collected": true,
      "structure": [
        "tree.compose",
        "tree.dockerfile",
        "tree.k8s"
      ],
      "declarations": [
        {
          "name": null,
          "path": "dashboard/package.json",
          "tokens": [
            "npm.private"
          ],
          "ecosystem": "npm"
        },
        {
          "name": "AstrBot",
          "path": "pyproject.toml",
          "tokens": [
            "pypi.console_scripts"
          ],
          "ecosystem": "pypi"
        }
      ]
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "readme_badges": {
        "hosts": [
          "shields.io"
        ],
        "total": 6,
        "header": 2,
        "collected": true,
        "has_inspect_badge": false
      },
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 75,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "AstrBot",
          "exists": true,
          "license": "AGPL-3.0-or-later",
          "keywords": [
            "Agent",
            "AstrBot",
            "Chatbot",
            "IM"
          ],
          "ecosystem": "pypi",
          "categories": [],
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/AstrBot/",
          "declared_type": null,
          "is_deprecated": false,
          "latest_version": "4.27.1",
          "repository_url": "https://github.com/AstrBotDevs/AstrBot",
          "versions_count": 161,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2025-05-01T12:51:45.965752Z",
          "latest_published_at": "2026-08-02T16:04:34.808262Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 2
        }
      ]
    },
    "popularity": {
      "forks": 2759,
      "stars": 38588,
      "watchers": 81,
      "fork_history": {
        "days": [
          {
            "date": "2026-03-26",
            "count": 9
          },
          {
            "date": "2026-03-27",
            "count": 9
          },
          {
            "date": "2026-03-28",
            "count": 9
          },
          {
            "date": "2026-03-29",
            "count": 11
          },
          {
            "date": "2026-03-30",
            "count": 7
          },
          {
            "date": "2026-03-31",
            "count": 7
          },
          {
            "date": "2026-04-01",
            "count": 11
          },
          {
            "date": "2026-04-02",
            "count": 18
          },
          {
            "date": "2026-04-03",
            "count": 12
          },
          {
            "date": "2026-04-04",
            "count": 5
          },
          {
            "date": "2026-04-05",
            "count": 9
          },
          {
            "date": "2026-04-06",
            "count": 10
          },
          {
            "date": "2026-04-07",
            "count": 7
          },
          {
            "date": "2026-04-08",
            "count": 6
          },
          {
            "date": "2026-04-09",
            "count": 9
          },
          {
            "date": "2026-04-10",
            "count": 10
          },
          {
            "date": "2026-04-11",
            "count": 7
          },
          {
            "date": "2026-04-12",
            "count": 7
          },
          {
            "date": "2026-04-13",
            "count": 6
          },
          {
            "date": "2026-04-14",
            "count": 10
          },
          {
            "date": "2026-04-15",
            "count": 4
          },
          {
            "date": "2026-04-16",
            "count": 9
          },
          {
            "date": "2026-04-17",
            "count": 6
          },
          {
            "date": "2026-04-18",
            "count": 7
          },
          {
            "date": "2026-04-19",
            "count": 5
          },
          {
            "date": "2026-04-20",
            "count": 13
          },
          {
            "date": "2026-04-21",
            "count": 7
          },
          {
            "date": "2026-04-22",
            "count": 11
          },
          {
            "date": "2026-04-23",
            "count": 6
          },
          {
            "date": "2026-04-24",
            "count": 10
          },
          {
            "date": "2026-04-25",
            "count": 3
          },
          {
            "date": "2026-04-26",
            "count": 5
          },
          {
            "date": "2026-04-27",
            "count": 6
          },
          {
            "date": "2026-04-28",
            "count": 11
          },
          {
            "date": "2026-04-29",
            "count": 12
          },
          {
            "date": "2026-04-30",
            "count": 5
          },
          {
            "date": "2026-05-01",
            "count": 6
          },
          {
            "date": "2026-05-02",
            "count": 4
          },
          {
            "date": "2026-05-03",
            "count": 9
          },
          {
            "date": "2026-05-04",
            "count": 5
          },
          {
            "date": "2026-05-05",
            "count": 8
          },
          {
            "date": "2026-05-06",
            "count": 10
          },
          {
            "date": "2026-05-07",
            "count": 5
          },
          {
            "date": "2026-05-08",
            "count": 6
          },
          {
            "date": "2026-05-09",
            "count": 5
          },
          {
            "date": "2026-05-10",
            "count": 6
          },
          {
            "date": "2026-05-11",
            "count": 6
          },
          {
            "date": "2026-05-12",
            "count": 2
          },
          {
            "date": "2026-05-13",
            "count": 4
          },
          {
            "date": "2026-05-14",
            "count": 7
          },
          {
            "date": "2026-05-15",
            "count": 4
          },
          {
            "date": "2026-05-16",
            "count": 7
          },
          {
            "date": "2026-05-17",
            "count": 2
          },
          {
            "date": "2026-05-18",
            "count": 8
          },
          {
            "date": "2026-05-19",
            "count": 9
          },
          {
            "date": "2026-05-20",
            "count": 2
          },
          {
            "date": "2026-05-21",
            "count": 9
          },
          {
            "date": "2026-05-22",
            "count": 8
          },
          {
            "date": "2026-05-23",
            "count": 3
          },
          {
            "date": "2026-05-24",
            "count": 6
          },
          {
            "date": "2026-05-25",
            "count": 6
          },
          {
            "date": "2026-05-26",
            "count": 5
          },
          {
            "date": "2026-05-27",
            "count": 7
          },
          {
            "date": "2026-05-28",
            "count": 6
          },
          {
            "date": "2026-05-29",
            "count": 8
          },
          {
            "date": "2026-05-30",
            "count": 1
          },
          {
            "date": "2026-05-31",
            "count": 4
          },
          {
            "date": "2026-06-01",
            "count": 4
          },
          {
            "date": "2026-06-02",
            "count": 3
          },
          {
            "date": "2026-06-03",
            "count": 5
          },
          {
            "date": "2026-06-04",
            "count": 12
          },
          {
            "date": "2026-06-05",
            "count": 7
          },
          {
            "date": "2026-06-06",
            "count": 6
          },
          {
            "date": "2026-06-07",
            "count": 7
          },
          {
            "date": "2026-06-08",
            "count": 7
          },
          {
            "date": "2026-06-09",
            "count": 9
          },
          {
            "date": "2026-06-10",
            "count": 4
          },
          {
            "date": "2026-06-11",
            "count": 7
          },
          {
            "date": "2026-06-12",
            "count": 5
          },
          {
            "date": "2026-06-13",
            "count": 7
          },
          {
            "date": "2026-06-14",
            "count": 8
          },
          {
            "date": "2026-06-15",
            "count": 7
          },
          {
            "date": "2026-06-16",
            "count": 5
          },
          {
            "date": "2026-06-17",
            "count": 9
          },
          {
            "date": "2026-06-18",
            "count": 7
          },
          {
            "date": "2026-06-19",
            "count": 5
          },
          {
            "date": "2026-06-20",
            "count": 5
          },
          {
            "date": "2026-06-21",
            "count": 5
          },
          {
            "date": "2026-06-22",
            "count": 8
          },
          {
            "date": "2026-06-23",
            "count": 11
          },
          {
            "date": "2026-06-24",
            "count": 5
          },
          {
            "date": "2026-06-25",
            "count": 4
          },
          {
            "date": "2026-06-26",
            "count": 7
          },
          {
            "date": "2026-06-27",
            "count": 5
          },
          {
            "date": "2026-06-28",
            "count": 3
          },
          {
            "date": "2026-06-29",
            "count": 6
          },
          {
            "date": "2026-06-30",
            "count": 4
          },
          {
            "date": "2026-07-01",
            "count": 7
          },
          {
            "date": "2026-07-02",
            "count": 3
          },
          {
            "date": "2026-07-03",
            "count": 4
          },
          {
            "date": "2026-07-04",
            "count": 2
          },
          {
            "date": "2026-07-05",
            "count": 6
          },
          {
            "date": "2026-07-06",
            "count": 9
          },
          {
            "date": "2026-07-07",
            "count": 6
          },
          {
            "date": "2026-07-08",
            "count": 9
          },
          {
            "date": "2026-07-09",
            "count": 6
          },
          {
            "date": "2026-07-10",
            "count": 7
          },
          {
            "date": "2026-07-11",
            "count": 5
          },
          {
            "date": "2026-07-12",
            "count": 8
          },
          {
            "date": "2026-07-13",
            "count": 6
          },
          {
            "date": "2026-07-14",
            "count": 6
          },
          {
            "date": "2026-07-15",
            "count": 6
          },
          {
            "date": "2026-07-16",
            "count": 1
          },
          {
            "date": "2026-07-17",
            "count": 1
          },
          {
            "date": "2026-07-18",
            "count": 8
          },
          {
            "date": "2026-07-19",
            "count": 10
          },
          {
            "date": "2026-07-20",
            "count": 30
          },
          {
            "date": "2026-07-21",
            "count": 34
          },
          {
            "date": "2026-07-22",
            "count": 37
          },
          {
            "date": "2026-07-23",
            "count": 25
          },
          {
            "date": "2026-07-24",
            "count": 11
          },
          {
            "date": "2026-07-25",
            "count": 11
          },
          {
            "date": "2026-07-26",
            "count": 6
          },
          {
            "date": "2026-07-27",
            "count": 10
          },
          {
            "date": "2026-07-28",
            "count": 7
          },
          {
            "date": "2026-07-29",
            "count": 7
          },
          {
            "date": "2026-07-30",
            "count": 8
          },
          {
            "date": "2026-07-31",
            "count": 7
          },
          {
            "date": "2026-08-01",
            "count": 8
          },
          {
            "date": "2026-08-02",
            "count": 10
          },
          {
            "date": "2026-08-03",
            "count": 5
          },
          {
            "date": "2026-08-04",
            "count": 10
          }
        ],
        "complete": false,
        "collected": 1000,
        "total_forks": 2759
      },
      "star_history": null,
      "open_issues_and_prs": 1357
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "samples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": true,
      "bootstrap_files": [
        "Makefile"
      ],
      "api_schema_files": [
        "docs/public/openapi.json"
      ],
      "has_devcontainer": false,
      "typecheck_configs": [
        "dashboard/tsconfig.json",
        "pyrightconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 1267458,
      "source_files_sampled": 744,
      "oversized_source_files": 19,
      "agent_instruction_files": [
        ".github/copilot-instructions.md",
        "AGENTS.md"
      ],
      "agent_instruction_max_bytes": 6502
    },
    "dependencies": {
      "manifests": [
        "dashboard/package.json",
        "docs/package.json",
        "pyproject.toml",
        "requirements.txt"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 142,
        "malicious_count": 0,
        "assessed_package": "pypi:AstrBot@4.27.1",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm",
        "pypi"
      ],
      "dependencies": [
        {
          "name": "@guolao/vue-monaco-editor",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.5.4"
        },
        {
          "name": "@hey-api/client-axios",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "0.2.12"
        },
        {
          "name": "@lucide/vue",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.23.0"
        },
        {
          "name": "@tiptap/starter-kit",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "2.1.7"
        },
        {
          "name": "@tiptap/vue-3",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "2.1.7"
        },
        {
          "name": "apexcharts",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "3.42.0"
        },
        {
          "name": "axios",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.13.5"
        },
        {
          "name": "axios-mock-adapter",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.22.0"
        },
        {
          "name": "chance",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.1.11"
        },
        {
          "name": "date-fns",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "2.30.0"
        },
        {
          "name": "dompurify",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.3.2"
        },
        {
          "name": "event-source-polyfill",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.31"
        },
        {
          "name": "highlight.js",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "11.11.1"
        },
        {
          "name": "katex",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.16.27"
        },
        {
          "name": "lodash",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "4.17.23"
        },
        {
          "name": "markdown-it",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^14.1.1"
        },
        {
          "name": "markstream-vue",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.0.5-beta.0"
        },
        {
          "name": "mermaid",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.12.2"
        },
        {
          "name": "monaco-editor",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.52.2"
        },
        {
          "name": "pinia",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "2.1.6"
        },
        {
          "name": "pinyin-pro",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.26.0"
        },
        {
          "name": "qrcode",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.5.4"
        },
        {
          "name": "shiki",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.23.0"
        },
        {
          "name": "stream-markdown",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.0.16"
        },
        {
          "name": "vee-validate",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "4.11.3"
        },
        {
          "name": "vite-plugin-vuetify",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "2.1.3"
        },
        {
          "name": "vue",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "3.3.4"
        },
        {
          "name": "vue-i18n",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.1.5"
        },
        {
          "name": "vue-router",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "4.2.4"
        },
        {
          "name": "vue3-apexcharts",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.4.4"
        },
        {
          "name": "vue3-print-nb",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "0.1.4"
        },
        {
          "name": "vuetify",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "3.7.11"
        },
        {
          "name": "yup",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.2.0"
        },
        {
          "name": "aiocqhttp",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.4.4"
        },
        {
          "name": "aiodocker",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.24.0"
        },
        {
          "name": "aiohttp",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.11.18"
        },
        {
          "name": "aiosqlite",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.21.0"
        },
        {
          "name": "anthropic",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.51.0"
        },
        {
          "name": "apscheduler",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.11.0"
        },
        {
          "name": "certifi",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2025.4.26"
        },
        {
          "name": "chardet",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "~=5.1.0"
        },
        {
          "name": "loguru",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.7.2"
        },
        {
          "name": "cryptography",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=44.0.3"
        },
        {
          "name": "dashscope",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.23.2"
        },
        {
          "name": "deprecated",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.2.18"
        },
        {
          "name": "dingtalk-stream",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.22.1"
        },
        {
          "name": "docstring-parser",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.16"
        },
        {
          "name": "faiss-cpu",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.14.3"
        },
        {
          "name": "fastapi",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.124.0"
        },
        {
          "name": "filelock",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.18.0"
        },
        {
          "name": "google-genai",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.56.0"
        },
        {
          "name": "httpx",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.28.1"
        },
        {
          "name": "lark-oapi",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.4.15"
        },
        {
          "name": "mcp",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.8.0,<2"
        },
        {
          "name": "openai",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.78.0"
        },
        {
          "name": "ormsgpack",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.9.1"
        },
        {
          "name": "openpyxl",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.1.5"
        },
        {
          "name": "pandas",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.2.0"
        },
        {
          "name": "pillow",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=11.2.1"
        },
        {
          "name": "pip",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=25.1.1"
        },
        {
          "name": "psutil",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=5.8.0,<7.2.0"
        },
        {
          "name": "py-cord",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.6.1"
        },
        {
          "name": "pydantic",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.12.5"
        },
        {
          "name": "pydub",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.25.1"
        },
        {
          "name": "pyjwt",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.10.1"
        },
        {
          "name": "qrcode",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=8.2"
        },
        {
          "name": "quart",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.20.0"
        },
        {
          "name": "python-telegram-bot",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=22.6"
        },
        {
          "name": "qq-botpy",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==1.2.1"
        },
        {
          "name": "silk-python",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.2.6"
        },
        {
          "name": "slack-sdk",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.35.0"
        },
        {
          "name": "sqlalchemy",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.0.41"
        },
        {
          "name": "sqlmodel",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.0.24"
        },
        {
          "name": "telegramify-markdown",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.0.0"
        },
        {
          "name": "watchfiles",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.0.5"
        },
        {
          "name": "websockets",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=15.0.1"
        },
        {
          "name": "wechatpy",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.8.18"
        },
        {
          "name": "audioop-lts",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "click",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=8.2.1"
        },
        {
          "name": "pypdf",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=6.1.1"
        },
        {
          "name": "aiofiles",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=25.1.0"
        },
        {
          "name": "rank-bm25",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.2.2"
        },
        {
          "name": "jieba",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.42.1"
        },
        {
          "name": "markitdown-no-magika",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.1.2"
        },
        {
          "name": "xinference-client",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "tenacity",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=9.1.2"
        },
        {
          "name": "shipyard-python-sdk",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.2.4"
        },
        {
          "name": "shipyard-neo-sdk",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.2.0"
        },
        {
          "name": "python-socks",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.8.0"
        },
        {
          "name": "pysocks",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.7.1"
        },
        {
          "name": "packaging",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=24.2"
        },
        {
          "name": "python-ripgrep",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==0.0.8"
        },
        {
          "name": "python-docx",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.2.0"
        },
        {
          "name": "pyotp",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.9.0"
        },
        {
          "name": "reportlab",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=5.0.0"
        },
        {
          "name": "xlrd",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.0.2"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@guolao/vue-monaco-editor",
            "direct": true,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@hey-api/client-axios",
            "direct": true,
            "version": "0.2.12",
            "ecosystem": "npm"
          },
          {
            "name": "@lucide/vue",
            "direct": true,
            "version": "1.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/starter-kit",
            "direct": true,
            "version": "2.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/vue-3",
            "direct": true,
            "version": "2.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "apexcharts",
            "direct": true,
            "version": "3.42.0",
            "ecosystem": "npm"
          },
          {
            "name": "axios",
            "direct": true,
            "version": "1.13.5",
            "ecosystem": "npm"
          },
          {
            "name": "axios-mock-adapter",
            "direct": true,
            "version": "1.22.0",
            "ecosystem": "npm"
          },
          {
            "name": "chance",
            "direct": true,
            "version": "1.1.11",
            "ecosystem": "npm"
          },
          {
            "name": "date-fns",
            "direct": true,
            "version": "2.30.0",
            "ecosystem": "npm"
          },
          {
            "name": "dompurify",
            "direct": true,
            "version": "3.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "event-source-polyfill",
            "direct": true,
            "version": "1.0.31",
            "ecosystem": "npm"
          },
          {
            "name": "highlight.js",
            "direct": true,
            "version": "11.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "katex",
            "direct": true,
            "version": "0.16.28",
            "ecosystem": "npm"
          },
          {
            "name": "lodash",
            "direct": true,
            "version": "4.17.23",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-it",
            "direct": true,
            "version": "14.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "markstream-vue",
            "direct": true,
            "version": "1.0.5-beta.0",
            "ecosystem": "npm"
          },
          {
            "name": "mermaid",
            "direct": true,
            "version": "11.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "monaco-editor",
            "direct": true,
            "version": "0.52.2",
            "ecosystem": "npm"
          },
          {
            "name": "pinia",
            "direct": true,
            "version": "2.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "pinyin-pro",
            "direct": true,
            "version": "3.28.0",
            "ecosystem": "npm"
          },
          {
            "name": "qrcode",
            "direct": true,
            "version": "1.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "shiki",
            "direct": true,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "shiki",
            "direct": true,
            "version": "3.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "stream-markdown",
            "direct": true,
            "version": "0.0.16",
            "ecosystem": "npm"
          },
          {
            "name": "vee-validate",
            "direct": true,
            "version": "4.11.3",
            "ecosystem": "npm"
          },
          {
            "name": "vite-plugin-vuetify",
            "direct": true,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "vue",
            "direct": true,
            "version": "3.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "vue",
            "direct": true,
            "version": "3.5.17",
            "ecosystem": "npm"
          },
          {
            "name": "vue-i18n",
            "direct": true,
            "version": "11.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "vue-router",
            "direct": true,
            "version": "4.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "vue3-apexcharts",
            "direct": true,
            "version": "1.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "vue3-print-nb",
            "direct": true,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "vuetify",
            "direct": true,
            "version": "3.7.11",
            "ecosystem": "npm"
          },
          {
            "name": "yup",
            "direct": true,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "aiocqhttp",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "aiodocker",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "aiofiles",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "aiohttp",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "aiosqlite",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "anthropic",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "apscheduler",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "audioop-lts",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "certifi",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "chardet",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "click",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "cryptography",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "dashscope",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "deprecated",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "dingtalk-stream",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "docstring-parser",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "faiss-cpu",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "fastapi",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "filelock",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "google-genai",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "httpx",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "jieba",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "lark-oapi",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "loguru",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "markitdown-no-magika",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mcp",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "openai",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "openpyxl",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "ormsgpack",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "packaging",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pandas",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pillow",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pip",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "psutil",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "py-cord",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pydub",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pyjwt",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pyotp",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pypdf",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pysocks",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "python-docx",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "python-ripgrep",
            "direct": true,
            "version": "0.0.8",
            "ecosystem": "pypi"
          },
          {
            "name": "python-socks",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "python-telegram-bot",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "qq-botpy",
            "direct": true,
            "version": "1.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "qrcode",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "quart",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "rank-bm25",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "reportlab",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "shipyard-neo-sdk",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "shipyard-python-sdk",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "silk-python",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "slack-sdk",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sqlalchemy",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sqlmodel",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "telegramify-markdown",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "tenacity",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "watchfiles",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "websockets",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "wechatpy",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "xinference-client",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "xlrd",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "@algolia/autocomplete-core",
            "direct": false,
            "version": "1.17.7",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/autocomplete-plugin-algolia-insights",
            "direct": false,
            "version": "1.17.7",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/autocomplete-preset-algolia",
            "direct": false,
            "version": "1.17.7",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/autocomplete-shared",
            "direct": false,
            "version": "1.17.7",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-abtesting",
            "direct": false,
            "version": "5.31.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-analytics",
            "direct": false,
            "version": "5.31.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-common",
            "direct": false,
            "version": "5.31.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-insights",
            "direct": false,
            "version": "5.31.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-personalization",
            "direct": false,
            "version": "5.31.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-query-suggestions",
            "direct": false,
            "version": "5.31.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-search",
            "direct": false,
            "version": "5.31.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/ingestion",
            "direct": false,
            "version": "1.31.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/monitoring",
            "direct": false,
            "version": "1.31.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/recommend",
            "direct": false,
            "version": "5.31.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/requester-browser-xhr",
            "direct": false,
            "version": "5.31.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/requester-fetch",
            "direct": false,
            "version": "5.31.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/requester-node-http",
            "direct": false,
            "version": "5.31.0",
            "ecosystem": "npm"
          },
          {
            "name": "@antfu/install-pkg",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@apidevtools/json-schema-ref-parser",
            "direct": false,
            "version": "11.7.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-string-parser",
            "direct": false,
            "version": "7.27.1",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "7.27.1",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "7.28.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/parser",
            "direct": false,
            "version": "7.28.0",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/parser",
            "direct": false,
            "version": "7.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/runtime",
            "direct": false,
            "version": "7.28.6",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/types",
            "direct": false,
            "version": "7.28.0",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/types",
            "direct": false,
            "version": "7.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "@braintree/sanitize-url",
            "direct": false,
            "version": "7.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@cacheable/memory",
            "direct": false,
            "version": "2.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@cacheable/utils",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "@chenglou/pretext",
            "direct": false,
            "version": "0.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@chevrotain/cst-dts-gen",
            "direct": false,
            "version": "11.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@chevrotain/gast",
            "direct": false,
            "version": "11.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@chevrotain/regexp-to-ast",
            "direct": false,
            "version": "11.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@chevrotain/types",
            "direct": false,
            "version": "11.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@chevrotain/utils",
            "direct": false,
            "version": "11.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@docsearch/css",
            "direct": false,
            "version": "3.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "@docsearch/js",
            "direct": false,
            "version": "3.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "@docsearch/react",
            "direct": false,
            "version": "3.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/aix-ppc64",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/aix-ppc64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm64",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-x64",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-x64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-arm64",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-arm64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-x64",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-x64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-arm64",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-arm64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-x64",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-x64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm64",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ia32",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ia32",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-loong64",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-loong64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-mips64el",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-mips64el",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ppc64",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ppc64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-riscv64",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-riscv64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-s390x",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-s390x",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-x64",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-x64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-arm64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-x64",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-x64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-arm64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-x64",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-x64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openharmony-arm64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/sunos-x64",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/sunos-x64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-arm64",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-arm64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-ia32",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-ia32",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-x64",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-x64",
            "direct": false,
            "version": "0.25.12",
            "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/eslintrc",
            "direct": false,
            "version": "2.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/js",
            "direct": false,
            "version": "8.48.0",
            "ecosystem": "npm"
          },
          {
            "name": "@floating-ui/core",
            "direct": false,
            "version": "1.7.5",
            "ecosystem": "npm"
          },
          {
            "name": "@floating-ui/dom",
            "direct": false,
            "version": "1.7.6",
            "ecosystem": "npm"
          },
          {
            "name": "@floating-ui/utils",
            "direct": false,
            "version": "0.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "@hey-api/openapi-ts",
            "direct": false,
            "version": "0.60.0",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/config-array",
            "direct": false,
            "version": "0.11.14",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/module-importer",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/object-schema",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@iconify-json/simple-icons",
            "direct": false,
            "version": "1.2.42",
            "ecosystem": "npm"
          },
          {
            "name": "@iconify/types",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@iconify/utils",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@intlify/core-base",
            "direct": false,
            "version": "11.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "@intlify/message-compiler",
            "direct": false,
            "version": "11.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "@intlify/shared",
            "direct": false,
            "version": "11.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/gen-mapping",
            "direct": false,
            "version": "0.3.13",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/resolve-uri",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/source-map",
            "direct": false,
            "version": "0.3.11",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/sourcemap-codec",
            "direct": false,
            "version": "1.5.4",
            "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": "@jsdevtools/ono",
            "direct": false,
            "version": "7.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@keyv/bigmap",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "@keyv/serialize",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@mdi/font",
            "direct": false,
            "version": "7.2.96",
            "ecosystem": "npm"
          },
          {
            "name": "@mermaid-js/parser",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "@monaco-editor/loader",
            "direct": false,
            "version": "1.7.0",
            "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": "@pkgr/core",
            "direct": false,
            "version": "0.2.9",
            "ecosystem": "npm"
          },
          {
            "name": "@popperjs/core",
            "direct": false,
            "version": "2.11.8",
            "ecosystem": "npm"
          },
          {
            "name": "@remirror/core-constants",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm-eabi",
            "direct": false,
            "version": "4.44.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm-eabi",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm64",
            "direct": false,
            "version": "4.44.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-arm64",
            "direct": false,
            "version": "4.44.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-arm64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-x64",
            "direct": false,
            "version": "4.44.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-x64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-arm64",
            "direct": false,
            "version": "4.44.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-arm64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-x64",
            "direct": false,
            "version": "4.44.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-x64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-gnueabihf",
            "direct": false,
            "version": "4.44.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-gnueabihf",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-musleabihf",
            "direct": false,
            "version": "4.44.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-musleabihf",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-gnu",
            "direct": false,
            "version": "4.44.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-musl",
            "direct": false,
            "version": "4.44.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-musl",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-musl",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loongarch64-gnu",
            "direct": false,
            "version": "4.44.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-powerpc64le-gnu",
            "direct": false,
            "version": "4.44.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-musl",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-gnu",
            "direct": false,
            "version": "4.44.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-musl",
            "direct": false,
            "version": "4.44.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-musl",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-s390x-gnu",
            "direct": false,
            "version": "4.44.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-s390x-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-gnu",
            "direct": false,
            "version": "4.44.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-musl",
            "direct": false,
            "version": "4.44.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-musl",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openbsd-x64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openharmony-arm64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-arm64-msvc",
            "direct": false,
            "version": "4.44.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-arm64-msvc",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-ia32-msvc",
            "direct": false,
            "version": "4.44.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-ia32-msvc",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-msvc",
            "direct": false,
            "version": "4.44.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-msvc",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rushstack/eslint-patch",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/core",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/core",
            "direct": false,
            "version": "3.22.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/core",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/engine-javascript",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/engine-javascript",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/engine-oniguruma",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/engine-oniguruma",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/langs",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/langs",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/themes",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/themes",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/transformers",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/types",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/types",
            "direct": false,
            "version": "3.22.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/types",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/vscode-textmate",
            "direct": false,
            "version": "10.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/core",
            "direct": false,
            "version": "2.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-blockquote",
            "direct": false,
            "version": "2.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-bold",
            "direct": false,
            "version": "2.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-bubble-menu",
            "direct": false,
            "version": "2.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-bullet-list",
            "direct": false,
            "version": "2.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-code",
            "direct": false,
            "version": "2.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-code-block",
            "direct": false,
            "version": "2.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-document",
            "direct": false,
            "version": "2.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-dropcursor",
            "direct": false,
            "version": "2.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-floating-menu",
            "direct": false,
            "version": "2.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-gapcursor",
            "direct": false,
            "version": "2.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-hard-break",
            "direct": false,
            "version": "2.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-heading",
            "direct": false,
            "version": "2.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-history",
            "direct": false,
            "version": "2.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-horizontal-rule",
            "direct": false,
            "version": "2.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-italic",
            "direct": false,
            "version": "2.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-list-item",
            "direct": false,
            "version": "2.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-ordered-list",
            "direct": false,
            "version": "2.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-paragraph",
            "direct": false,
            "version": "2.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-strike",
            "direct": false,
            "version": "2.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/extension-text",
            "direct": false,
            "version": "2.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tiptap/pm",
            "direct": false,
            "version": "2.27.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/chance",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3",
            "direct": false,
            "version": "7.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-array",
            "direct": false,
            "version": "3.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-axis",
            "direct": false,
            "version": "3.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-brush",
            "direct": false,
            "version": "3.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-chord",
            "direct": false,
            "version": "3.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-color",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-contour",
            "direct": false,
            "version": "3.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-delaunay",
            "direct": false,
            "version": "6.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-dispatch",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-drag",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-dsv",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-ease",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-fetch",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-force",
            "direct": false,
            "version": "3.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-format",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-geo",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-hierarchy",
            "direct": false,
            "version": "3.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-interpolate",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-path",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-polygon",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-quadtree",
            "direct": false,
            "version": "3.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-random",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-scale",
            "direct": false,
            "version": "4.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-scale-chromatic",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-selection",
            "direct": false,
            "version": "3.0.11",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-shape",
            "direct": false,
            "version": "3.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-time",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-time-format",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-timer",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-transition",
            "direct": false,
            "version": "3.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-zoom",
            "direct": false,
            "version": "3.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@types/dompurify",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/eslint",
            "direct": false,
            "version": "9.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/eslint-scope",
            "direct": false,
            "version": "3.7.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@types/geojson",
            "direct": false,
            "version": "7946.0.16",
            "ecosystem": "npm"
          },
          {
            "name": "@types/hast",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/json-schema",
            "direct": false,
            "version": "7.0.15",
            "ecosystem": "npm"
          },
          {
            "name": "@types/linkify-it",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/markdown-it",
            "direct": false,
            "version": "14.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/mdast",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/mdurl",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "20.19.32",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "20.19.37",
            "ecosystem": "npm"
          },
          {
            "name": "@types/semver",
            "direct": false,
            "version": "7.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/trusted-types",
            "direct": false,
            "version": "2.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/unist",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/web-bluetooth",
            "direct": false,
            "version": "0.0.21",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/eslint-plugin",
            "direct": false,
            "version": "5.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/parser",
            "direct": false,
            "version": "5.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/scope-manager",
            "direct": false,
            "version": "5.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/type-utils",
            "direct": false,
            "version": "5.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/types",
            "direct": false,
            "version": "5.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/typescript-estree",
            "direct": false,
            "version": "5.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/utils",
            "direct": false,
            "version": "5.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/visitor-keys",
            "direct": false,
            "version": "5.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@ungap/structured-clone",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vitejs/plugin-vue",
            "direct": false,
            "version": "5.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@volar/language-core",
            "direct": false,
            "version": "1.10.10",
            "ecosystem": "npm"
          },
          {
            "name": "@volar/source-map",
            "direct": false,
            "version": "1.10.10",
            "ecosystem": "npm"
          },
          {
            "name": "@volar/typescript",
            "direct": false,
            "version": "1.10.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-core",
            "direct": false,
            "version": "3.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-core",
            "direct": false,
            "version": "3.5.17",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-core",
            "direct": false,
            "version": "3.5.27",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-dom",
            "direct": false,
            "version": "3.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-dom",
            "direct": false,
            "version": "3.5.17",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-dom",
            "direct": false,
            "version": "3.5.27",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-sfc",
            "direct": false,
            "version": "3.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-sfc",
            "direct": false,
            "version": "3.5.17",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-ssr",
            "direct": false,
            "version": "3.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-ssr",
            "direct": false,
            "version": "3.5.17",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-api",
            "direct": false,
            "version": "6.6.4",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-api",
            "direct": false,
            "version": "7.7.7",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-kit",
            "direct": false,
            "version": "7.7.7",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-shared",
            "direct": false,
            "version": "7.7.7",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/eslint-config-prettier",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/eslint-config-typescript",
            "direct": false,
            "version": "11.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/language-core",
            "direct": false,
            "version": "1.8.8",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/reactivity",
            "direct": false,
            "version": "3.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/reactivity",
            "direct": false,
            "version": "3.5.17",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/reactivity",
            "direct": false,
            "version": "3.5.27",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/reactivity-transform",
            "direct": false,
            "version": "3.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/runtime-core",
            "direct": false,
            "version": "3.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/runtime-core",
            "direct": false,
            "version": "3.5.17",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/runtime-dom",
            "direct": false,
            "version": "3.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/runtime-dom",
            "direct": false,
            "version": "3.5.17",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/server-renderer",
            "direct": false,
            "version": "3.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/server-renderer",
            "direct": false,
            "version": "3.5.17",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/shared",
            "direct": false,
            "version": "3.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/shared",
            "direct": false,
            "version": "3.5.17",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/shared",
            "direct": false,
            "version": "3.5.27",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/tsconfig",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/typescript",
            "direct": false,
            "version": "1.8.8",
            "ecosystem": "npm"
          },
          {
            "name": "@vuetify/loader-shared",
            "direct": false,
            "version": "1.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "@vuetify/loader-shared",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vueuse/core",
            "direct": false,
            "version": "12.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vueuse/integrations",
            "direct": false,
            "version": "12.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vueuse/metadata",
            "direct": false,
            "version": "12.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vueuse/shared",
            "direct": false,
            "version": "12.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/ast",
            "direct": false,
            "version": "1.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/floating-point-hex-parser",
            "direct": false,
            "version": "1.13.2",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/helper-api-error",
            "direct": false,
            "version": "1.13.2",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/helper-buffer",
            "direct": false,
            "version": "1.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/helper-numbers",
            "direct": false,
            "version": "1.13.2",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/helper-wasm-bytecode",
            "direct": false,
            "version": "1.13.2",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/helper-wasm-section",
            "direct": false,
            "version": "1.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/ieee754",
            "direct": false,
            "version": "1.13.2",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/leb128",
            "direct": false,
            "version": "1.13.2",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/utf8",
            "direct": false,
            "version": "1.13.2",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/wasm-edit",
            "direct": false,
            "version": "1.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/wasm-gen",
            "direct": false,
            "version": "1.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/wasm-opt",
            "direct": false,
            "version": "1.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/wasm-parser",
            "direct": false,
            "version": "1.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "@webassemblyjs/wast-printer",
            "direct": false,
            "version": "1.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "@xtuc/ieee754",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@xtuc/long",
            "direct": false,
            "version": "4.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "@yr/monotone-cubic-spline",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.16.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-import-phases",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-jsx",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "6.12.6",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "8.18.0",
            "ecosystem": "npm"
          },
          {
            "name": "ajv-formats",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "ajv-keywords",
            "direct": false,
            "version": "3.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "ajv-keywords",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "algoliasearch",
            "direct": false,
            "version": "5.31.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "anymatch",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "array-union",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "asynckit",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "baseline-browser-mapping",
            "direct": false,
            "version": "2.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "big.js",
            "direct": false,
            "version": "5.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "binary-extensions",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "birpc",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "boolbase",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "1.1.12",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "braces",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "browserslist",
            "direct": false,
            "version": "4.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-from",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "c12",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "cacheable",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "call-bind-apply-helpers",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "callsite",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "callsites",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "camelcase",
            "direct": false,
            "version": "5.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "caniuse-lite",
            "direct": false,
            "version": "1.0.30001778",
            "ecosystem": "npm"
          },
          {
            "name": "ccount",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "character-entities-html4",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "character-entities-legacy",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "chevrotain",
            "direct": false,
            "version": "11.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "chevrotain-allstar",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "chokidar",
            "direct": false,
            "version": "3.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "chokidar",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "chownr",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "chrome-trace-event",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "citty",
            "direct": false,
            "version": "0.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "clean-css",
            "direct": false,
            "version": "5.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "cliui",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "combined-stream",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "comma-separated-tokens",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "12.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "2.20.3",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "8.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "commondir",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "concat-map",
            "direct": false,
            "version": "0.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "confbox",
            "direct": false,
            "version": "0.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "consola",
            "direct": false,
            "version": "3.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "copy-anything",
            "direct": false,
            "version": "3.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "cose-base",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "cose-base",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "crelt",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "cross-spawn",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "cssesc",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "csstype",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "csstype",
            "direct": false,
            "version": "3.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "cytoscape",
            "direct": false,
            "version": "3.33.1",
            "ecosystem": "npm"
          },
          {
            "name": "cytoscape-cose-bilkent",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "cytoscape-fcose",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3",
            "direct": false,
            "version": "7.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-array",
            "direct": false,
            "version": "2.12.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-array",
            "direct": false,
            "version": "3.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "d3-axis",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-brush",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-chord",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-color",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-contour",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "d3-delaunay",
            "direct": false,
            "version": "6.0.4",
            "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-dsv",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-ease",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-fetch",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-force",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-format",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "d3-geo",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-hierarchy",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "d3-interpolate",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-path",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "d3-path",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-polygon",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-quadtree",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-random",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-sankey",
            "direct": false,
            "version": "0.12.3",
            "ecosystem": "npm"
          },
          {
            "name": "d3-scale",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "d3-scale-chromatic",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-selection",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-shape",
            "direct": false,
            "version": "1.3.7",
            "ecosystem": "npm"
          },
          {
            "name": "d3-shape",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-time",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-time-format",
            "direct": false,
            "version": "4.1.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": "dagre-d3-es",
            "direct": false,
            "version": "7.0.13",
            "ecosystem": "npm"
          },
          {
            "name": "dayjs",
            "direct": false,
            "version": "1.11.19",
            "ecosystem": "npm"
          },
          {
            "name": "de-indent",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "decache",
            "direct": false,
            "version": "4.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "decamelize",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "deep-is",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "defu",
            "direct": false,
            "version": "6.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "delaunator",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "delayed-stream",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "dequal",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "destr",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "devlop",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "dijkstrajs",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "dir-glob",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "doctrine",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "dotenv",
            "direct": false,
            "version": "16.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "dunder-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "electron-to-chromium",
            "direct": false,
            "version": "1.5.307",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex-xs",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "emojis-list",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "enhanced-resolve",
            "direct": false,
            "version": "5.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "4.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-define-property",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-errors",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-module-lexer",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-object-atoms",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-set-tostringtag",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.21.5",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.25.12",
            "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": "8.48.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-config-prettier",
            "direct": false,
            "version": "8.10.2",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-prettier",
            "direct": false,
            "version": "5.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-vue",
            "direct": false,
            "version": "9.17.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-scope",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-scope",
            "direct": false,
            "version": "7.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "3.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "espree",
            "direct": false,
            "version": "9.6.1",
            "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": "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": "esutils",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "events",
            "direct": false,
            "version": "3.3.0",
            "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": "fast-uri",
            "direct": false,
            "version": "3.1.0",
            "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": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "file-loader",
            "direct": false,
            "version": "6.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "fill-range",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "find-cache-dir",
            "direct": false,
            "version": "3.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "find-up",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "find-up",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "flat-cache",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "flat-cache",
            "direct": false,
            "version": "6.1.20",
            "ecosystem": "npm"
          },
          {
            "name": "flatted",
            "direct": false,
            "version": "3.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "focus-trap",
            "direct": false,
            "version": "7.6.5",
            "ecosystem": "npm"
          },
          {
            "name": "follow-redirects",
            "direct": false,
            "version": "1.15.11",
            "ecosystem": "npm"
          },
          {
            "name": "fontverter",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "form-data",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "fs-minipass",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fs.realpath",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "function-bind",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "get-caller-file",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "get-intrinsic",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "giget",
            "direct": false,
            "version": "1.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "7.2.3",
            "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": "glob-to-regexp",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "globals",
            "direct": false,
            "version": "13.24.0",
            "ecosystem": "npm"
          },
          {
            "name": "globby",
            "direct": false,
            "version": "11.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "gopd",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "graceful-fs",
            "direct": false,
            "version": "4.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "graphemer",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "hachure-fill",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "handlebars",
            "direct": false,
            "version": "4.7.8",
            "ecosystem": "npm"
          },
          {
            "name": "harfbuzzjs",
            "direct": false,
            "version": "0.4.15",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-symbols",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-tostringtag",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "hashery",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "hasown",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-to-html",
            "direct": false,
            "version": "9.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-whitespace",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "he",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "hookable",
            "direct": false,
            "version": "5.5.3",
            "ecosystem": "npm"
          },
          {
            "name": "hookified",
            "direct": false,
            "version": "1.15.1",
            "ecosystem": "npm"
          },
          {
            "name": "html-void-elements",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "ignore",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "immutable",
            "direct": false,
            "version": "4.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "import-fresh",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "imurmurhash",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "inflight",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "inherits",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "internmap",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "internmap",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "interpret",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-binary-path",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-buffer",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "is-core-module",
            "direct": false,
            "version": "2.16.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-extglob",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-glob",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-number",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-path-inside",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-what",
            "direct": false,
            "version": "4.1.16",
            "ecosystem": "npm"
          },
          {
            "name": "isexe",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-worker",
            "direct": false,
            "version": "27.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "jiti",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-buffer",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-parse-even-better-errors",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "1.0.0",
            "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": "keyv",
            "direct": false,
            "version": "5.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "khroma",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "langium",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "layout-base",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "layout-base",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "levn",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "linkify-it",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "linkify-it",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "loader-runner",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "loader-utils",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "locate-path",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "locate-path",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash-es",
            "direct": false,
            "version": "4.17.23",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.merge",
            "direct": false,
            "version": "4.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.17",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.21",
            "ecosystem": "npm"
          },
          {
            "name": "make-dir",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mark.js",
            "direct": false,
            "version": "8.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-it-container",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-it-footnote",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-it-ins",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-it-mark",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-it-sub",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-it-sup",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-it-task-checkbox",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-it-ts",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "marked",
            "direct": false,
            "version": "16.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "markstream-core",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "math-intrinsics",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-to-hast",
            "direct": false,
            "version": "13.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-to-hast",
            "direct": false,
            "version": "13.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "mdurl",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "merge-stream",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "merge2",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-character",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-encode",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-sanitize-uri",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-symbol",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-types",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "micromatch",
            "direct": false,
            "version": "4.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "mime-db",
            "direct": false,
            "version": "1.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-types",
            "direct": false,
            "version": "2.1.35",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "9.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "minimist",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "minipass",
            "direct": false,
            "version": "3.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "minipass",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "minisearch",
            "direct": false,
            "version": "7.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "minizlib",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "mitt",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "mkdirp",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "mlly",
            "direct": false,
            "version": "1.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "muggle-string",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.11",
            "ecosystem": "npm"
          },
          {
            "name": "natural-compare",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "natural-compare-lite",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "neo-async",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "node-fetch-native",
            "direct": false,
            "version": "1.6.7",
            "ecosystem": "npm"
          },
          {
            "name": "node-releases",
            "direct": false,
            "version": "2.0.36",
            "ecosystem": "npm"
          },
          {
            "name": "normalize-path",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "nth-check",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "null-loader",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "nypm",
            "direct": false,
            "version": "0.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "ohash",
            "direct": false,
            "version": "1.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "once",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "oniguruma-parser",
            "direct": false,
            "version": "0.12.1",
            "ecosystem": "npm"
          },
          {
            "name": "oniguruma-to-es",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "oniguruma-to-es",
            "direct": false,
            "version": "4.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "optionator",
            "direct": false,
            "version": "0.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "orderedmap",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-try",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "package-manager-detector",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "pako",
            "direct": false,
            "version": "1.0.11",
            "ecosystem": "npm"
          },
          {
            "name": "parent-module",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-browserify",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-data-parser",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-exists",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-is-absolute",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-key",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-parse",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "path-type",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "pathe",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "pathe",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "perfect-debounce",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "pkg-dir",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "pkg-types",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "pngjs",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "points-on-curve",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "points-on-path",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "postcss-selector-parser",
            "direct": false,
            "version": "6.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "preact",
            "direct": false,
            "version": "10.26.9",
            "ecosystem": "npm"
          },
          {
            "name": "prelude-ls",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "prettier",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "prettier-linter-helpers",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "property-expr",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "property-information",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-changeset",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-collab",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-commands",
            "direct": false,
            "version": "1.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-dropcursor",
            "direct": false,
            "version": "1.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-gapcursor",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-history",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-inputrules",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-keymap",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-markdown",
            "direct": false,
            "version": "1.13.4",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-menu",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-model",
            "direct": false,
            "version": "1.25.4",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-schema-basic",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-schema-list",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-state",
            "direct": false,
            "version": "1.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-tables",
            "direct": false,
            "version": "1.8.5",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-trailing-node",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-transform",
            "direct": false,
            "version": "1.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "prosemirror-view",
            "direct": false,
            "version": "1.41.6",
            "ecosystem": "npm"
          },
          {
            "name": "proxy-from-env",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "punycode",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "punycode.js",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "qified",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "querystring",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "queue-microtask",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "rc9",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "readdirp",
            "direct": false,
            "version": "3.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "readdirp",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "rechoir",
            "direct": false,
            "version": "0.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "regex-recursion",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "regex-utilities",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "require-directory",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "require-from-string",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "require-main-filename",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "resolve",
            "direct": false,
            "version": "1.22.11",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-from",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "reusify",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "rfdc",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "rimraf",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "robust-predicates",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "rollup",
            "direct": false,
            "version": "4.44.2",
            "ecosystem": "npm"
          },
          {
            "name": "rollup",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "rope-sequence",
            "direct": false,
            "version": "1.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "roughjs",
            "direct": false,
            "version": "4.6.6",
            "ecosystem": "npm"
          },
          {
            "name": "run-parallel",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "rw",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "safer-buffer",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "sass",
            "direct": false,
            "version": "1.66.1",
            "ecosystem": "npm"
          },
          {
            "name": "sass-loader",
            "direct": false,
            "version": "13.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "schema-utils",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "schema-utils",
            "direct": false,
            "version": "4.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "search-insights",
            "direct": false,
            "version": "2.17.3",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "6.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "set-blocking",
            "direct": false,
            "version": "2.0.0",
            "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": "shelljs",
            "direct": false,
            "version": "0.8.5",
            "ecosystem": "npm"
          },
          {
            "name": "shiki-stream",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "slash",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "source-map",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-js",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-support",
            "direct": false,
            "version": "0.5.21",
            "ecosystem": "npm"
          },
          {
            "name": "space-separated-tokens",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "speakingurl",
            "direct": false,
            "version": "14.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "state-local",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "stream-markdown-parser",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "stringify-entities",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "strip-json-comments",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "stylis",
            "direct": false,
            "version": "4.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "subset-font",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "superjson",
            "direct": false,
            "version": "2.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "8.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "supports-preserve-symlinks-flag",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "svg.draggable.js",
            "direct": false,
            "version": "2.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "svg.easing.js",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "svg.filter.js",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "svg.js",
            "direct": false,
            "version": "2.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "svg.pathmorphing.js",
            "direct": false,
            "version": "0.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "svg.resize.js",
            "direct": false,
            "version": "1.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "svg.select.js",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "svg.select.js",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "synckit",
            "direct": false,
            "version": "0.11.12",
            "ecosystem": "npm"
          },
          {
            "name": "tabbable",
            "direct": false,
            "version": "6.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "tapable",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "tar",
            "direct": false,
            "version": "6.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "terser",
            "direct": false,
            "version": "5.46.0",
            "ecosystem": "npm"
          },
          {
            "name": "terser-webpack-plugin",
            "direct": false,
            "version": "5.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "text-table",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "tiny-case",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "tinyexec",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "tinyexec",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.15",
            "ecosystem": "npm"
          },
          {
            "name": "tippy.js",
            "direct": false,
            "version": "6.3.7",
            "ecosystem": "npm"
          },
          {
            "name": "to-regex-range",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "toposort",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "trim-lines",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ts-dedent",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "1.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "tsutils",
            "direct": false,
            "version": "3.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-check",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.20.2",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "2.19.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "4.41.0",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "5.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "uc.micro",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "ufo",
            "direct": false,
            "version": "1.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "uglify-js",
            "direct": false,
            "version": "3.19.3",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "6.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-is",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-is",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-position",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-stringify-position",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-visit",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-visit",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-visit-parents",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-visit-parents",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "upath",
            "direct": false,
            "version": "2.0.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": "uuid",
            "direct": false,
            "version": "11.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "vfile",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "vfile-message",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "vfile-message",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "5.4.19",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "6.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "vite-plugin-webfont-dl",
            "direct": false,
            "version": "3.12.0",
            "ecosystem": "npm"
          },
          {
            "name": "vitepress",
            "direct": false,
            "version": "1.6.4",
            "ecosystem": "npm"
          },
          {
            "name": "vscode-jsonrpc",
            "direct": false,
            "version": "8.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "vscode-languageserver",
            "direct": false,
            "version": "9.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "vscode-languageserver-protocol",
            "direct": false,
            "version": "3.17.5",
            "ecosystem": "npm"
          },
          {
            "name": "vscode-languageserver-textdocument",
            "direct": false,
            "version": "1.0.12",
            "ecosystem": "npm"
          },
          {
            "name": "vscode-languageserver-types",
            "direct": false,
            "version": "3.17.5",
            "ecosystem": "npm"
          },
          {
            "name": "vscode-uri",
            "direct": false,
            "version": "3.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "vue-cli-plugin-vuetify",
            "direct": false,
            "version": "2.5.8",
            "ecosystem": "npm"
          },
          {
            "name": "vue-demi",
            "direct": false,
            "version": "0.14.10",
            "ecosystem": "npm"
          },
          {
            "name": "vue-eslint-parser",
            "direct": false,
            "version": "9.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "vue-template-compiler",
            "direct": false,
            "version": "2.7.16",
            "ecosystem": "npm"
          },
          {
            "name": "vue-tsc",
            "direct": false,
            "version": "1.8.8",
            "ecosystem": "npm"
          },
          {
            "name": "vuetify-loader",
            "direct": false,
            "version": "2.0.0-alpha.9",
            "ecosystem": "npm"
          },
          {
            "name": "w3c-keyname",
            "direct": false,
            "version": "2.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "watchpack",
            "direct": false,
            "version": "2.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "wawoff2",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "webpack",
            "direct": false,
            "version": "5.105.0",
            "ecosystem": "npm"
          },
          {
            "name": "webpack-sources",
            "direct": false,
            "version": "3.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "which",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "which-module",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "woff2sfnt-sfnt2woff",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "word-wrap",
            "direct": false,
            "version": "1.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "wordwrap",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "6.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrappy",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "xml-name-validator",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "y18n",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "yallist",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "15.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "yargs-parser",
            "direct": false,
            "version": "18.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "yocto-queue",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "zwitch",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "commitizen",
            "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": "ruff",
            "direct": false,
            "version": "0.15.22",
            "ecosystem": "pypi"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 933,
        "direct_count": 98,
        "indirect_count": 835
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 348,
        "merged_prs": 1661,
        "open_issues": 1009,
        "closed_ratio": 0.841,
        "closed_issues": 5356,
        "closed_unmerged_prs": 667
      },
      "bus_factor": 1,
      "bot_contributors": 3,
      "top_contributors": [
        {
          "type": "User",
          "login": "Soulter",
          "commits": 3372,
          "avatar_url": "https://avatars.githubusercontent.com/u/37870767?v=4"
        },
        {
          "type": "User",
          "login": "Raven95676",
          "commits": 211,
          "avatar_url": "https://avatars.githubusercontent.com/u/176760093?v=4"
        },
        {
          "type": "User",
          "login": "RC-CHN",
          "commits": 91,
          "avatar_url": "https://avatars.githubusercontent.com/u/67079377?v=4"
        },
        {
          "type": "User",
          "login": "zouyonghe",
          "commits": 71,
          "avatar_url": "https://avatars.githubusercontent.com/u/62183434?v=4"
        },
        {
          "type": "User",
          "login": "anka-afk",
          "commits": 63,
          "avatar_url": "https://avatars.githubusercontent.com/u/110004162?v=4"
        },
        {
          "type": "User",
          "login": "LIghtJUNction",
          "commits": 57,
          "avatar_url": "https://avatars.githubusercontent.com/u/106986785?v=4"
        },
        {
          "type": "User",
          "login": "Cedarflake",
          "commits": 57,
          "avatar_url": "https://avatars.githubusercontent.com/u/59095086?v=4"
        },
        {
          "type": "User",
          "login": "advent259141",
          "commits": 57,
          "avatar_url": "https://avatars.githubusercontent.com/u/197440256?v=4"
        },
        {
          "type": "User",
          "login": "lxfight",
          "commits": 43,
          "avatar_url": "https://avatars.githubusercontent.com/u/108376172?v=4"
        },
        {
          "type": "User",
          "login": "Dt8333",
          "commits": 30,
          "avatar_url": "https://avatars.githubusercontent.com/u/25431943?v=4"
        }
      ],
      "contributors_sampled": 97,
      "top_contributor_share": 0.717
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "build-docs.yml",
        "code-format.yml",
        "codeql.yml",
        "coverage_test.yml",
        "dashboard_ci.yml",
        "docker-image.yml",
        "release.yml",
        "smoke_test.yml",
        "stale.yml",
        "sync-wiki.yml",
        "unit_tests.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": true
    },
    "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": 6,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "25 out of 25 merged PRs checked by a CI test -- score normalized to 10",
            "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": 2,
            "reason": "Found 8/30 approved changesets -- score normalized to 2",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 21 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 16 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 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": 10,
            "reason": "SAST tool is run on all commits",
            "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": "218 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "bb9b1878474e5ed65667d5c2c6b7fd6efbc51db4",
        "ran_at": "2026-08-05T01:05:59Z",
        "aggregate_score": 5.3,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": true,
      "has_security_policy": false,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "recent_prs": {
        "merged_7d": 36,
        "decided_7d": 46,
        "merged_30d": 44,
        "authors_30d": 25,
        "decided_30d": 57,
        "sample_size": 60,
        "window_days": 30,
        "sample_exhausted": false,
        "authors_probed_30d": 12,
        "newcomer_merged_30d": 3,
        "bot_prs_excluded_30d": 1,
        "newcomer_authors_30d": 4,
        "newcomer_decided_30d": 6
      },
      "ci_last_run_at": "2026-08-05T00:59:58Z",
      "oldest_open_prs": [
        {
          "number": 3182,
          "created_at": "2025-10-28T02:58:23Z",
          "last_comment_at": "2025-10-28T04:49:00Z",
          "last_comment_author": "Flartiny"
        },
        {
          "number": 3725,
          "created_at": "2025-11-21T12:34:16Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 4451,
          "created_at": "2026-01-13T16:35:20Z",
          "last_comment_at": "2026-03-31T12:38:16Z",
          "last_comment_author": "AstralSolipsism"
        },
        {
          "number": 4650,
          "created_at": "2026-01-24T04:11:57Z",
          "last_comment_at": "2026-02-09T08:25:18Z",
          "last_comment_author": "bylkuse"
        },
        {
          "number": 4683,
          "created_at": "2026-01-25T07:19:30Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 4813,
          "created_at": "2026-02-02T06:52:57Z",
          "last_comment_at": "2026-02-03T09:02:21Z",
          "last_comment_author": "LIghtJUNction"
        },
        {
          "number": 4842,
          "created_at": "2026-02-03T14:45:52Z",
          "last_comment_at": "2026-02-03T15:06:11Z",
          "last_comment_author": "NayukiChiba"
        },
        {
          "number": 4850,
          "created_at": "2026-02-03T16:54:41Z",
          "last_comment_at": "2026-02-03T17:14:39Z",
          "last_comment_author": "copilot-swe-agent"
        },
        {
          "number": 4854,
          "created_at": "2026-02-03T18:28:50Z",
          "last_comment_at": "2026-02-03T18:29:23Z",
          "last_comment_author": "dosubot"
        },
        {
          "number": 4861,
          "created_at": "2026-02-04T05:33:00Z",
          "last_comment_at": "2026-03-04T13:53:39Z",
          "last_comment_author": "qa296"
        },
        {
          "number": 4886,
          "created_at": "2026-02-05T10:07:52Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 4894,
          "created_at": "2026-02-05T13:49:04Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 5087,
          "created_at": "2026-02-13T06:10:44Z",
          "last_comment_at": "2026-02-13T06:10:59Z",
          "last_comment_author": "dosubot"
        },
        {
          "number": 5090,
          "created_at": "2026-02-13T07:58:01Z",
          "last_comment_at": "2026-02-13T08:25:04Z",
          "last_comment_author": "evpeople"
        },
        {
          "number": 5093,
          "created_at": "2026-02-13T16:44:51Z",
          "last_comment_at": "2026-06-23T15:15:00Z",
          "last_comment_author": "Ereebay"
        },
        {
          "number": 5245,
          "created_at": "2026-02-19T18:58:00Z",
          "last_comment_at": "2026-03-20T20:13:05Z",
          "last_comment_author": "Luna-channel"
        },
        {
          "number": 5291,
          "created_at": "2026-02-21T13:14:12Z",
          "last_comment_at": "2026-02-28T08:38:43Z",
          "last_comment_author": "zouyonghe"
        },
        {
          "number": 5398,
          "created_at": "2026-02-24T01:41:28Z",
          "last_comment_at": "2026-02-24T01:41:46Z",
          "last_comment_author": "gemini-code-assist"
        },
        {
          "number": 5487,
          "created_at": "2026-02-26T16:20:35Z",
          "last_comment_at": "2026-02-26T16:22:44Z",
          "last_comment_author": "dosubot"
        },
        {
          "number": 5512,
          "created_at": "2026-02-27T06:21:10Z",
          "last_comment_at": "2026-03-21T07:40:27Z",
          "last_comment_author": "zgojin"
        }
      ],
      "last_merged_pr_at": "2026-08-04T07:17:40Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 738,
          "created_at": "2025-03-09T03:38:50Z",
          "last_comment_at": "2025-11-12T06:28:01Z",
          "last_comment_author": "roeseth"
        },
        {
          "number": 814,
          "created_at": "2025-03-13T07:53:19Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 892,
          "created_at": "2025-03-19T15:32:21Z",
          "last_comment_at": "2025-03-19T15:33:56Z",
          "last_comment_author": "Zawinzala"
        },
        {
          "number": 897,
          "created_at": "2025-03-20T07:19:05Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1126,
          "created_at": "2025-04-03T03:12:36Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1242,
          "created_at": "2025-04-12T06:48:58Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1267,
          "created_at": "2025-04-13T18:12:13Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1293,
          "created_at": "2025-04-16T08:49:59Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1313,
          "created_at": "2025-04-18T05:43:19Z",
          "last_comment_at": "2025-04-18T05:45:24Z",
          "last_comment_author": "Soulter"
        },
        {
          "number": 1314,
          "created_at": "2025-04-18T05:50:00Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1318,
          "created_at": "2025-04-18T08:30:18Z",
          "last_comment_at": "2025-04-27T12:54:38Z",
          "last_comment_author": "nickhelion"
        },
        {
          "number": 1348,
          "created_at": "2025-04-20T10:30:57Z",
          "last_comment_at": "2026-02-05T13:53:28Z",
          "last_comment_author": "Sjshi763"
        },
        {
          "number": 1463,
          "created_at": "2025-05-04T13:46:15Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1497,
          "created_at": "2025-05-09T05:41:22Z",
          "last_comment_at": "2025-05-12T00:20:57Z",
          "last_comment_author": "advent259141"
        },
        {
          "number": 1546,
          "created_at": "2025-05-13T08:00:42Z",
          "last_comment_at": "2025-11-22T03:01:17Z",
          "last_comment_author": "Sjshi763"
        },
        {
          "number": 1756,
          "created_at": "2025-06-06T18:45:34Z",
          "last_comment_at": "2026-02-10T08:46:44Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 1798,
          "created_at": "2025-06-12T09:41:16Z",
          "last_comment_at": "2025-06-19T06:51:45Z",
          "last_comment_author": "w-xiaob"
        },
        {
          "number": 1823,
          "created_at": "2025-06-16T08:01:37Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1831,
          "created_at": "2025-06-17T02:36:06Z",
          "last_comment_at": "2025-08-22T02:03:58Z",
          "last_comment_author": "Jacky1n7"
        },
        {
          "number": 1837,
          "created_at": "2025-06-18T02:58:05Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/AstrBotDevs/AstrBot",
    "host": "github.com",
    "name": "AstrBot",
    "owner": "AstrBotDevs"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "exceptional",
      "name": "Overall health",
      "note": "The weighted overall 83 is calibrated to 96 on the published index scale (record calibration 2026-08-02).",
      "notes": [
        {
          "code": "overall_calibration",
          "params": {
            "raw": 83,
            "calibrated": 96,
            "calibration": "2026-08-02"
          }
        }
      ],
      "value": 96,
      "inputs": {
        "security": 62,
        "vitality": 96,
        "community": 94,
        "governance": 64,
        "calibration": "2026-08-02",
        "engineering": 96,
        "ai_readiness": 88,
        "weighted_overall_raw": 83
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "exceptional",
        "name": "Vitality",
        "value": 96,
        "weight": 0.21,
        "metrics": [
          {
            "key": "development_activity",
            "band": "exceptional",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "commits_last_year": 2173,
              "human_commit_share": 0.97,
              "days_since_last_push": 0,
              "active_weeks_last_year": 52
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "52/52 weeks with commits",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 52
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "2173 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 2173
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 16 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": "v4.27.1",
              "releases_from_tags": false,
              "days_since_latest_release": 2,
              "mean_days_between_releases": 4.2
            },
            "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 2 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 2
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~4.2 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 4.2
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "exceptional",
            "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": "exceptional",
        "name": "Community & Adoption",
        "value": 94,
        "weight": 0.17,
        "metrics": [
          {
            "key": "popularity",
            "band": "exceptional",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 96,
            "inputs": {
              "forks": 2759,
              "stars": 38588,
              "watchers": 81,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "38,588 stars",
                "points": 60,
                "status": "met",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 38588
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "2,759 forks",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 2759
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "81 watchers",
                "points": 10.6,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 81
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "readme_badges": 6,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "readme_badge_services": [
                "shields.io"
              ],
              "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 (AGPL-3.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "AGPL-3.0"
                    }
                  }
                ],
                "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": 64,
        "weight": 0.23,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "weak",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 39,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 97,
              "top_contributor_share": 0.717
            },
            "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 72% of commits",
                "points": 6.4,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 72
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "97 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 97
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 21 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 66,
            "inputs": {
              "merged_prs": 1661,
              "open_issues": 1009,
              "closed_issues": 5356,
              "prs_merged_7d": 36,
              "prs_decided_7d": 46,
              "prs_merged_30d": 44,
              "prs_decided_30d": 57,
              "issue_closed_ratio": 0.841,
              "closed_unmerged_prs": 667,
              "first_time_authors_30d": 4,
              "first_time_prs_merged_30d": 3,
              "first_time_prs_decided_30d": 6
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "84% of issues closed",
                "points": 35.3,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 84
                    }
                  }
                ],
                "max_points": 42
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "1661/2328 decided PRs merged",
                "points": 21.4,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 1661,
                      "decided": 2328
                    }
                  }
                ],
                "max_points": 30
              },
              {
                "key": "newcomer_pr_acceptance",
                "name": "Newcomer PR acceptance",
                "detail": "3/6 first-time contributors' PRs merged in 30d",
                "points": 6.5,
                "status": "partial",
                "details": [
                  {
                    "code": "newcomer_prs_merged",
                    "params": {
                      "days": 30,
                      "merged": 3,
                      "decided": 6
                    }
                  }
                ],
                "max_points": 13
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 8/30 approved changesets -- score normalized to 2",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 64,
            "inputs": {
              "followers": 520,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "AstrBotDevs",
              "public_repos": 32,
              "account_age_days": 545
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "520 followers of AstrBotDevs",
                "points": 19.5,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 520,
                      "login": "AstrBotDevs"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "32 public repos, account ~1 yr old",
                "points": 14,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 32
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 1
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "exceptional",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "AstrBot"
              ],
              "ecosystems": "pypi",
              "any_deprecated": false,
              "min_days_since_publish": 2
            },
            "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 2 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 2
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "161 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 161
                    }
                  }
                ],
                "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": "exceptional",
        "name": "Engineering Quality",
        "value": 96,
        "weight": 0.19,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "exceptional",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 94,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": true
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "11 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 11
                    }
                  }
                ],
                "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": 16,
                "status": "met",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 9.6,
                "status": "met",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "25 out of 25 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "exceptional",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "topics": [
                "ai",
                "chatbot",
                "chatgpt",
                "openai",
                "qqbot",
                "gpt",
                "qq",
                "agent",
                "docker",
                "llm",
                "python",
                "telegram",
                "gemini",
                "llama",
                "mcp",
                "discord",
                "astrbot"
              ],
              "has_wiki": true,
              "homepage": "https://astrbot.app",
              "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://astrbot.app",
                "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": "17 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 17
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 62,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": null,
            "notes": [],
            "value": 53,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 18,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 0,
              "scorecard_aggregate": 5.3
            },
            "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 is not maximal on development and all release branches",
                "points": 4.5,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "25 out of 25 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 8/30 approved changesets -- score normalized to 2",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 21 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 16 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is run on all commits",
                "points": 5,
                "status": "met",
                "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": "218 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "exceptional",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the pypi:AstrBot@4.27.1 runtime dependency closure — what installing the published package pulls in — 142 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:AstrBot@4.27.1",
                  "assessed": 142
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 142,
              "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": "exceptional",
            "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": 142,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "exceptional",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "commit_weight_rule": {
                "min_commits": 50,
                "min_commit_share": 0.1
              },
              "review_only_matches": 0,
              "below_threshold_exposures": [],
              "assessed_self_published_locations": 18
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "excellent",
        "name": "AI Readiness",
        "value": 88,
        "weight": 0.04,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "agent_instruction_files": [
                ".github/copilot-instructions.md",
                "AGENTS.md"
              ],
              "agent_instruction_max_bytes": 6502
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": ".github/copilot-instructions.md, AGENTS.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".github/copilot-instructions.md, AGENTS.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "97 of 97 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 97,
                      "sampled": 97
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "excellent",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 88,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "pnpm-lock.yaml"
              ],
              "has_dockerfile": true,
              "typed_language": false,
              "bootstrap_files": [
                "Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "dashboard/tsconfig.json",
                "pyrightconfig.json"
              ],
              "agent_commit_share": 0.04,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0.03
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Makefile"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 11,
                "status": "met",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "dashboard/tsconfig.json, pyrightconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "dashboard/tsconfig.json, pyrightconfig.json"
                    }
                  }
                ],
                "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": "4 of the last 100 commits agent-authored or agent-credited",
                "points": 8,
                "status": "partial",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 4,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "3 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 3,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 81,
            "inputs": {
              "primary_language": "Python",
              "largest_source_bytes": 1267458,
              "source_files_sampled": 744,
              "oversized_source_files": 19
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Python with type-check config (dashboard/tsconfig.json, pyrightconfig.json)",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "typecheck_config_language",
                    "params": {
                      "files": "dashboard/tsconfig.json, pyrightconfig.json",
                      "language": "Python"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "19/744 source files over 60KB",
                "points": 53.6,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 744,
                      "oversized": 19
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "exceptional",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "example_dirs": [
                "samples"
              ],
              "has_mcp_signal": true,
              "api_schema_files": [
                "docs/public/openapi.json"
              ]
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": "docs/public/openapi.json",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "docs/public/openapi.json"
                    }
                  }
                ],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "samples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "samples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight: agent tooling is a real maintenance signal, but its absence must never gate the top of the scale (calibration saturates at raw 91, so 100/100 remains reachable with AI Readiness at zero)."
      }
    ],
    "classification": {
      "top": [
        "library",
        "application"
      ],
      "labels": [
        "network-service",
        "cli",
        "mcp-server",
        "chat-bot",
        "library",
        "web-ui"
      ],
      "scores": {
        "cli": 14,
        "web-ui": 4,
        "library": 4.4,
        "chat-bot": 6,
        "mcp-server": 7,
        "network-service": 14
      },
      "primary": "network-service",
      "evidence": [
        {
          "tier": "declared",
          "label": "cli",
          "source": "pypi.console_scripts",
          "weight": 10
        },
        {
          "tier": "distribution",
          "label": "library",
          "source": "registry:pypi",
          "weight": 6
        },
        {
          "tier": "dependencies",
          "label": "chat-bot",
          "source": "dep:python-telegram-bot",
          "weight": 4
        },
        {
          "tier": "dependencies",
          "label": "cli",
          "source": "dep:click",
          "weight": 4
        },
        {
          "tier": "dependencies",
          "label": "mcp-server",
          "source": "dep:mcp",
          "weight": 4
        },
        {
          "tier": "dependencies",
          "label": "network-service",
          "source": "dep:fastapi",
          "weight": 4
        },
        {
          "tier": "structure",
          "label": "network-service",
          "source": "tree.k8s",
          "weight": 4
        },
        {
          "tier": "dependencies",
          "label": "web-ui",
          "source": "dep:vue",
          "weight": 4
        },
        {
          "tier": "declared",
          "label": "library",
          "source": "npm.private",
          "weight": -3.6
        },
        {
          "tier": "structure",
          "label": "mcp-server",
          "source": "mcp_signal",
          "weight": 3
        },
        {
          "tier": "structure",
          "label": "network-service",
          "source": "api_schema",
          "weight": 3
        },
        {
          "tier": "structure",
          "label": "network-service",
          "source": "tree.compose",
          "weight": 3
        },
        {
          "tier": "tags",
          "label": "chat-bot",
          "source": "tag:chatbot",
          "weight": 2
        },
        {
          "tier": "description",
          "label": "library",
          "source": "description:library",
          "weight": 2
        }
      ],
      "artifacts": [
        {
          "path": "dashboard/package.json",
          "labels": [],
          "ecosystem": "npm"
        },
        {
          "path": "pyproject.toml",
          "labels": [
            "cli"
          ],
          "ecosystem": "pypi"
        }
      ],
      "confidence": "medium",
      "host_extension": false,
      "runs_as_process": true,
      "consumed_by_code": true
    },
    "metrics_version": "2.5.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "First-time contributor figures cover 12 of 25 authors (cap 12)"
  ],
  "report_type": "repository",
  "generated_at": "2026-08-05T01:06:28.377268Z",
  "schema_version": "0.31.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/a/AstrBotDevs/AstrBot.svg",
  "full_name": "AstrBotDevs/AstrBot",
  "license_state": "standard",
  "license_spdx": "AGPL-3.0"
}

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 v2.5.0, schema v0.31.0 — full methodology · metrics wiki.

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